matcher-list参数如何在zsh zstyle完成中起作用?

时间:2011-10-26 16:54:08

标签: zshrc

我正在尝试配置我的〜/ .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如何匹配文件/ dir建议
  • '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,我有一个很难确定哪个网站更适合它。