如何让 zsh 选项卡完成修复目录和文件的大小写错误?

Aar*_*ron 25 linux zsh shell tab-completion

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

PS:我过去常常更新我的 Linux 专业知识,而我的知识已经变得陈旧了......我正在努力解决这个问题......(不使用 shift 键,就像可能……哈哈)

mpy*_*mpy 50

这在使用zsh 完成系统(由 开始autoload -Uz compinit && compinit)时是可能的, 并且由zstyle控制:

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
Run Code Online (Sandbox Code Playgroud)

zsh表明小写字母将匹配小写字母和大写字母。(即大写字母只匹配大写字母。)

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

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
Run Code Online (Sandbox Code Playgroud)

如果您只在没有区分大小写的匹配时才想要不区分大小写的匹配,请添加'',例如

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'
Run Code Online (Sandbox Code Playgroud)

另请参阅matcher-list in的说明man zshcompsys

  • @mpy 感谢您的友好回复。我发现我们需要在 zstyle 命令后添加 `autoload -Uz compinit && compinit` 才能使设置生效。也许值得一提的是,在我这样的zsh新手的回答中... (9认同)
  • 那么我应该把 `zstyle` 放在哪里? (3认同)
  • 我已将上述设置添加到我的 `.zshrc` 并获取它,但它似乎不起作用。我也尝试在命令行中使用该命令无济于事。关于如何使其工作的任何想法? (2认同)
  • @jitbit:我添加了一个带有片段的“摘要”,以便于复制和粘贴。我希望这将有助于加快这项工作。 (2认同)