我将 ZSH 与 Oh My Zsh 一起使用。我希望每个新的 ZSH shell 都以空的历史记录开始。在一个 shell 中键入的命令永远不会出现在另一个 shell 的历史记录中。我怎样才能实现这个目标?
我尝试将以下内容附加到我的~/.zshrc
但无济于事:
setopt no_share_history
unsetopt share_history
unsetopt inc_append_history
unsetopt append_history
我也尝试过遵循这个回答使箭头键只显示本地历史记录,但这似乎没有效果。
目前,如果我打开一个新的 shell,它会导入历史记录。我似乎无法删除历史记录;当我删除时~/.zsh_history
,一旦我打开一个新的外壳,它就会重新出现并显示整个旧内容。inc_append_history
确实会阻止立即写入历史记录,但一旦 shell 关闭,历史记录最终仍会被保存。
答案1
将其添加到您的~/.zshrc
文件中:
function erase_history { local HISTSIZE=0; }
erase_history
每次启动交互式 zsh shell 时,它都会删除历史记录。
答案2
HISTFILE
仅当您设置变量(历史文件的路径)和SAVEHIST
变量(要存储在其中的条目数量)时,才会保存 zsh 历史记录。
~/.zshrc
因此,只需从设置它们的位置(可能是您的或其中包含的任何文件)删除这些变量定义即可。即使不只设置其中之一也足够了。
请注意,setopt no_share_history
and unsetopt share_history
(或set +o nonosharehistory
、 等 或options[sharehistory]=off
) 严格等效。