2016-07-24 39 views
0

不工作我已經加入HISTIGNORE在zsh中

export HISTIGNORE="ls:cd:pwd:exit:cd .." 

我的.zshrc文件。

刪除.zsh_history並重新啓動終端,但它仍然不會忽略這些命令。

enter image description here

回答

5

zsh外殼不使用HISTIGNORE環境變量。相反,它有一個HISTORY_IGNORE環境變量。

zshparam manual

HISTORY_IGNORE

如果設置,作爲當時的模式處理歷史文件 寫入。任何匹配該模式的潛在歷史記錄都會被跳過。例如,如果值爲fc *,則調用交互式歷史記錄編輯器的命令不會從 寫入歷史記錄文件。

請注意HISTORY_IGNORE定義了單個模式:指定 替代使用(first|second|...)語法。

所以你的情況,你會想要做

HISTORY_IGNORE="(ls|cd|pwd|exit|cd ..)" 

或類似的東西。

請注意,這隻會影響寫入歷史記錄文件的歷史記錄,而不會影響當前活動shell會話中的歷史記錄,據我所知。

+0

似乎還沒有工作。我正在使用.oh-my-zsh,不知道是否會更改這些變量。我跟着這個傢伙的例子 https://github.com/bradp/dotfiles/blob/master/sourced/exports 這就是爲什麼我認爲它會這樣工作。但我不確定了。 – tgreen

+0

好吧,將'SAVEHIST'設置爲正數,確保'HISTFILE'設置爲歷史文件的名稱,並且將'HISTORY_IGNORE'設置爲'「(cd | ls)」'確實按照'無論如何zsh'手冊。 – Kusalananda

+0

謝謝Kusalananda。我想你是對的。我想,並且希望當我運行「歷史記錄」或當我點擊向上鍵時,這些命令不會被顯示。他們不在歷史文件中,所以我想它正在工作。 – tgreen