zsh 不区分大小写的中字补全

zsh 不区分大小写的中字补全

我的.zshrc不区分大小写选项卡完成中有以下内容。我遇到了 tab 补全失败的情况,我不明白为什么。

autoload -U compinit && compinit

zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '+l:|=* r:|=*'

$ ls
Elephant/ ElephantExample/

$ cd ex[TAB]  # completion doesn't do anything here
$ cd x[TAB]   # completion works as expected --> ElephantExample/
$ cd E[TAB]   # completion works as expected --> Elephant
$ cd e[TAB]   # completion works as expected --> Elephant

有人可以帮我解释一下吗?这是 zsh 的错误吗?

编辑:我正在使用“zsh 5.0.7 (x86_64-apple-darwin13.4.0)”

答案1

将样式更改为:

 zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' \
  '+l:|?=** r:|?=**'

允许ex<tab>扩展到ElephantExample,但可能会产生不良副作用。

相关内容