如何在不区分大小写的情况下从文件名中间获取匹配的zsh补全?

时间:2019-12-01 09:00:52

标签: zsh zsh-completion

我很难让zsh自动完成我想要的方式。理想情况下,我想输入一些字符串(可以是单个字符),然后在按Tab键后,获取其中包含该字符串的每个文件和目录的列表,而忽略大小写。我以为我当前的配置应该这样做,但是它在几个文件名上失败了。这是我正在使用的:

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

在匹配*a[0-9]+b[0-9]+*时失败的文件。我希望能够输入b并点击tab,然后查看所有与该正则表达式匹配的文件。但是,我当前的配置没有显示结果。

例如,如果我有这样的目录:

$ ls
x-a5b8.y
x.y-a111b82_z
x y.a0b44-z

输入内容并点击选项卡应显示以下结果

$ b[tab]
x-a5b8.y
x.y-a111b82_z
x y.a0b44-z

$ b8[tab]
x-a5b8.y
x.y-a111b82_z

我查看了docs用于完成匹配控制,但是我无法弄清楚我需要具体做什么。如果可能的话,我很想使用regexr之类的东西来实时查看哪些模式与之匹配。

有人可以帮助我找到适合我的规格的图案,还是帮助我了解图案匹配系统?

我正在使用Oh My Zsh,但是我认为这不会影响此问题,因为我在~/.oh-my-zsh/custom目录中有一个修改zstyle的文件,并且zstyle的输出具有规则I为匹配者列表指定。

0 个答案:

没有答案