如何使用 zsh tab 补全功能修复目录和文件的大写错误?

如何使用 zsh tab 补全功能修复目录和文件的大写错误?

我在之前的 arch 安装中完全切换到了 zsh,我非常喜欢它,主要是因为 arch 是将 ~ 目录中的 Documents、Downloads、Music 和此类目录的首字母大写的发行版之一。由于我不习惯这样做,并且我使用 Tab 键完成终端中的几乎所有操作,所以与 bash 相比,zsh 对我来说就像天堂一样……我发誓这个功能曾经是自动激活的,因为我不记得必须调整任何东西来使它以这种方式工作。我可能是偶然发现的。xD 但我非常希望在我的新电脑上使用 zsh 作为我的主 shell 恢复此功能,如果有人知道该怎么做,我将非常感谢您的回复。我尝试激活完成配置中的每个选项,但似乎没有奏效……所以我来到这里。

附言:我以前对 Linux 的了解很多,但现在我的知识已经陈旧了...我正在尝试补救...(尽可能不使用 Shift 键...哈哈)

答案1

总结:如果您将这些行放入zsh配置文件中,这是可能的,通常~/.zshrc

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

更多信息:

这是可能的,当使用 zsh 完成系统(由 启动autoload -Uz compinit && compinit)并由 控制风格

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

这说明zsh小写字母将匹配小写字母和大写字母。(即大写字母仅匹配大写字母。)

如果您希望大写字母也匹配小写字母,请使用:

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

如果仅当没有区分大小写的匹配时才希望不区分大小写,请添加'',例如

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

matcher-list 另请参阅中的描述man zshcompsys

相关内容