2014-05-01 149 views
2

我在~/.zshrc以下别名:Zsh:智能自动完成功能?

~ which pulseaudio-restart 
pulseaudio-restart: aliased to killall pulseaudio && pulseaudio --start 

是否有可能在某种程度上配置岩组击键restart将输出我pulseaudio-restart的建议,因为它包含字符串restart

目前,打字restart只带来了:

~ rest 
restart  restore-trash 
+0

你为什么不把别名命名为restart-pulseaudio?由于您正在使用制表符完成,因此不会出现别名的确切名称。 – chepner

+0

好点。但是,对于我来说,记住'pulseaudio-restart'会更容易,因为我知道我正在寻找与'pulseaudio'相关的命令。 – orschiro

回答

2

是的,它是可能的。为此,您必须设置/修改完成模块的matcher-list样式。这可以用下面的命令来完成:

zstyle ':completion:*' matcher-list 'l:|=* r:|=*' 

这告诉完成查找完成左侧以及上所打的词的右边(具体可在zshcompwid(1)找到)。

由于名称matcher-list表示可能有多个匹配规范,在这种情况下,重要的是'l:|=* r:|=*'是第一个。规范按照它们出现的顺序进行尝试,直到返回匹配。


对于oh-my-zshmatcher-listlib/completion.zsh设置,它已经包含了需要规范,但只能作为最后的选择。您可以在oh-my-zsh加载后更改订单或在~/.zshrc中添加自己的设置。

+0

非常好的解决方案!尽管我使用'oh-my-zsh',我只是在'〜/ .zshrc'的底部添加了'zstyle':completion:*'matcher-list'l:| = * r:| = *''它完美的工作! – orschiro