如何關閉 zsh 中的完成循環?

如何關閉 zsh 中的完成循環?

如何防止 ZSH 循環匹配完成,而只是在清單中呈現剩餘可能性的清單?

在我最近安裝的作業系統中,按下 Tab 時我開始出現 ZSH 循環行為。我不喜歡它,更喜歡它只顯示一個匹配列表。我的舊作業系統安裝有此問題,所以我猜測較新版本的 Zsh 中的某些預設設定是原因。我嘗試在 Google 上搜索,並比較我的環境變數(env輸出 - 如果有幫助的話我可以包含它們,但它會很長),但我只是無法找出正確的設定。

這是我的環境訊息:

在以下系統上按需要工作(每次按 Tab 時都會列出匹配項)

  • zsh 4.3.12 (i386-apple-darwin11.2.0),Darwin macbookair 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 i386 MacBookAir4,2 Darwin
  • zsh 5.1.1 (i686-ubuntu-linux-gnu),Linux nuc2017 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:58:51 UTC 2017 i686 i686 i686 GNU/Linux
    • 全新 Ubuntu 安裝
  • zsh 5.0.8 (x86_64-apple-darwin15.0),Darwin Sridhars-Mac-mini.local 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64 i386 Macmini6,1 Darwin

無法如預期工作(每次按 Tab 時都會循環顯示匹配項)

  • zsh 5.1.1 (x86_64-ubuntu-linux-gnu),Linux nuc 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    • 從以前的版本對我的 Ubuntu 進行了 dist 升級
  • OS X Sierra(版本資訊不可用 - 它在我的工作電腦上)

我嘗試過但不起作用的事情:

unsetopt menu_complete

答案1

答案2

如果你有一個乾淨的 Zsh 安裝並且文件中只有~/.zshrc這個

autoload -Uz compinit && compinit -C

然後它會在您第一次按 Tab 時顯示完成清單。

但是,如果您添加

unsetopt AUTO_LIST

那麼這種情況就不會再發生,完成會立即開始循環。

若要查看此選項是否已取消設置,請執行下列操作

setopt

它顯示與預設值不同的所有選項。如果輸出包含noautolist,則已AUTO_LIST取消設定。

相關內容