是否有可能zsh从正确文件名的部分单词中完成整个文件名?例如,在这个文件夹下有(helloABC,helloabc,helloworld),我想只键入(oab + tab)来获取(helloABC,helloabc.)
Ada*_*hon 17
是的,这是可能的.它可以在zsh完成系统中启用.
将这些行添加到您的.zshrc遗嘱将为您提供此功能:
zstyle ':completion:*' completer _complete
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '+l:|=* r:|=*'
autoload -Uz compinit
compinit
Run Code Online (Sandbox Code Playgroud)
_completer 给出正常的完成行为
'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '+l:|=* r:|=*' 负责大小写密集的匹配,并且当前单词的两侧可能会发生匹配(即从文件名的中间部分匹配).
注意:其中一些或类似的行可能已经存在于您的行列中~/.zshrc.在这种情况下,您可能需要编辑它们:
如果还没有_complete必须添加到从定义开始的行completer
如果已经存在,则不区分大小写的规则可能看起来不同,例如m:{A-Za-z}={a-zA-Z},您可以替换或保留原样.
+l:|=* r:|=*在不区分大小写的规则之后必须立即来(如果只有+这两个规则之间的规则,它也可以工作,但我只检查了一些基本的组合,这有效)
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |