禁用 zsh 中的子字符串补全

禁用 zsh 中的子字符串补全

我禁用以下行为:

cd deo<Tab>
--> cd Videos

我在 macOS 上使用 zsh 5.3.1 和 oh-my-zsh。

答案1

这来自于匹配者其配置有matcher-list完成风格。

将匹配器列表设置为不包含前缀添加的内容,例如普通的完成光标:

zstyle ':completion:*' matcher-list ''

这需要放在.zshrcoh-my-zsh 代码之后,因为 oh-my-zsh 是打开前缀完成的东西。

即使使用默认设置,如果您有时确实想从子字符串中获取完成,您可以通过*在您想要允许完成插入内容的位置放置通配符来显式请求它:

cd*deoTab

如果您希望行为取决于命令,则可以zstyle使用更精确的命令来指定该设置应用于哪个命令语境。例如,仅在完成目录时关闭此功能:

zstyle ':completion:*:complete:*:_dirs:*' matcher-list ''

相关内容