Shell
如何配置 ZSH 以使用隔離的空歷史記錄啟動每個 shell?
我將 ZSH 與 Oh My Zsh 一起使用。我希望每個新的 ZSH shell 都以空的歷史記錄開始。在一個 shell 中鍵入的命令永遠不會出現在另一個 shell 的歷史記錄中。我怎樣才能做到這一點?
我嘗試將以下內容附加到我
~/.zshrc
的無濟於事:setopt no_share_history unsetopt share_history unsetopt inc_append_history unsetopt append_history
我也試過按照這個答案讓箭頭鍵只顯示本地歷史,但這似乎沒有效果。
目前,如果我打開一個新外殼,它會導入歷史記錄。我似乎無法刪除歷史記錄;當我 delete 時
~/.zsh_history
,一旦我打開一個新的 shell,它就會與整個舊內容一起重新出現。inc_append_history
確實會阻止立即寫入歷史記錄,但是一旦關閉外殼,歷史記錄最終仍將被保存。
HISTFILE
僅當您同時設置變數(歷史文件的路徑)和SAVEHIST
變數(要儲存在那裡的條目數量)時,才會保存 zsh 歷史記錄。因此,只需從設置它們的任何位置(可能是您的
~/.zshrc
或其中包含的任何文件)中刪除這些變數定義。即使不只設置其中一個也足夠了。注意
setopt no_share_history
andunsetopt share_history
(orset +o nonosharehistory
, etc oroptions[sharehistory]=off
) 是嚴格等價的。
將此添加到您的
~/.zshrc
文件中:function erase_history { local HISTSIZE=0; } erase_history
每次啟動互動式 zsh shell 時,它都會清除歷史記錄。