我很难让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为匹配者列表指定。