9

我正在尝试配置我的 ~/.zshrc 以便文件/目录上的代码完成工作,因为我需要它。我在网上找到了关于 zstyle 补全语法和代码示例的各种资源,但其中的某些部分对我来说仍然是黑魔法。

到目前为止,经过一些摆弄和测试,这就是我所在的位置:

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

这是我从中了解到的:

  • zstyle ':completion:*'意味着我们要为完成定义一个配置值
  • matcher-list是我们更新的配置,这里它定义了 zsh 如何匹配文件/目录来建议
  • 'm:{a-zA-Z}={A-Za-z}' 'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'是要传递给matcher-list配置的参数(值)。
  • 这里我有两个参数,用空格隔开。这意味着 zsh 将首先尝试查找与第一个 arg 匹配的文件,如果没有找到将尝试与第二个 arg 匹配的文件

在这里它变得模糊:

  • 我知道'm:{a-zA-Z}={A-Za-z}'匹配不区分大小写,但我不太理解语法。
  • 我也知道它'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'仍然不区分大小写,但也在整个字符串中搜索匹配,而不仅仅是开始。但是,我也不明白语法。

有人可以确认我以前的断言,并在需要时更正它们,并详细说明参数的巫毒语法吗?

谢谢

编辑:哦,对不起,如果这个问题更适合 superuser.com,我很难确定哪个网站更适合它。

4

1 回答 1

3

嗨,zsh doc 位于

http://zsh.sourceforge.net/Doc/Release/Completion-Widgets.html#Completion-Matching-Control

于 2012-07-01T11:48:06.080 回答