如何防止 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
- OS X Sierra(版本信息不可用 - 它在我的工作电脑上)
我尝试过但没有效果的方法:
unsetopt menu_complete
答案1
你正在寻找的是setopt noautomenu
看https://serverfault.com/questions/109207/how-do-i-make-zsh-completion-act-more-like-bash-completion完整选项列表
答案2
如果你有一个干净的 Zsh 安装并且文件中只有~/.zshrc
这个
autoload -Uz compinit && compinit -C
然后当您第一次按下 Tab 键时,它会显示完成列表。
但是,如果你添加
unsetopt AUTO_LIST
那么这种情况就不会再发生并且完成开始立即循环。
要查看此选项是否已取消设置,请执行以下操作
setopt
显示所有与默认值不同的选项。如果输出包含noautolist
,则表示AUTO_LIST
已取消设置。