我正在嘗試將我的 Z shell 配置為不使用“setopt HIST_FIND_NO_DUPS”顯示重複的歷史記錄條目。
HIST_FIND_NO_DUPS
When searching for history entries in the line editor, do not display duplicates of a line previously found, even if the duplicates are not contiguous.
然而,它並沒有按照預期的方式運作。當我有這段歷史時:
1 history
2 cd /bin
3 cd /bin
4 cd /bin
我希望按 UP 兩次(設置為“up-line-or-history”)並在提示中獲得“history”。然而,我得到的是“cd /bin”。如果我按 UP 四次,它將轉到「歷史記錄」命令,這基本上是未設定 HIST_FIND_NO_DUPS 的預設行為。
我知道我可以使用其他選項來防止重複的命令首先被保存(例如 HIST_IGNORE_ALL_DUPS),但這不是我想要的行為。
答案1
HIST_FIND_NO_DUPS
什麼時候s̲e̲a̲r̲c̲h̲i̲n̲g̲對於行編輯器中的歷史條目,不要顯示先前找到的行的重複項,即使重複項不連續。
我認為它按設計工作,setopt HIST_FIND_NO_DUPS
當您按下向上箭頭時不應影響結果。它會影響您按 後顯示的搜尋結果Ctrl-r
。假設您有以下歷史:
mvn clean package
mvn clean package
mvn clean package -DSkipTests
mvn clean package
現在,如果您按下Ctrl-r
並鍵入,mvn
您會收到mvn clean package
建議。當您Ctrl-r
再次按下時,您將得到mvn clean package -DSkipTests
。第三次按下Ctrl-r
不會產生新的建議,因為 不允許重複HIST_FIND_NO_DUPS
。沒有HIST_FIND_NO_DUPS
外殼會mvn clean package
再次向您展示。