将 zsh 的制表符补全与不区分大小写相结合

将 zsh 的制表符补全与不区分大小写相结合

我将 zsh 5.0.7 配置为使用不区分大小写的制表符完成

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

我遇到的问题是,这种不区分大小写的情况经常导致我需要按Tab额外的时间。例如,我的主目录包含文件夹“桌面”、“文档”和“下载”。如果我在主文件夹中输入

cd D

然后按Tab,我看到为我列出的三种可能性。另一方面,如果我输入

cd d

然后按Tab“d”变为“D”,但我没有看到完成菜单;我需要Tab再次按下才能实现这一点。有没有办法在“d”变成“D”的同时获得补全菜单?

答案1

启用该选项MENU_COMPLETE将跳过更正并立即插入第一个可能的匹配项。

答案2

另一个有用的设置可能是

setopt no_list_ambiguous

它将把“c”更正为“C”显示完成菜单。

答案3

OP 和答案对我不起作用。最高答案这里工作正常:


将这些行放入您的 zsh 配置文件中,通常是~/.zshrc

autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

相关内容