从 zsh 自动完成中删除 ZLE 命令

从 zsh 自动完成中删除 ZLE 命令

我已将 zsh 补全设置为不区分大小写,并使用选项autocd,因此当我输入时,downl<Tab><Enter>我会输入cd Downloads/。太棒了!但是,如果我只输入dow,zsh 将改为自动完成down-case-word-match,这似乎是 ZLE 中的一个功能。经过一番挖掘,我尝试将以下行添加到我的.zshrc(之后):compinit

unset '_comps[_zle]'

但是,有问题的补全仍然存在。那么如何从自动补全中删除 ZLE 建议?

答案1

这个问题的根源是我.zshrc 普遍推荐获取 bash 样式的单词边界:

autoload -U select-word-style
select-word-style bash

这将自动加载几个函数(列出这里), 包括down-case-word-match

因为我想保留它,但只是被一个特定的功能所困扰,所以我通过添加(之后compinit)将其从完成中删除

zstyle ':completion:*:*:-command-:*:*' ignored-patterns 'down-case-word-match'

基于这个答案

相关内容