Zsh 智能自动完成功能?
我的Zsh 智能自动完成功能?,zsh,oh-my-zsh,zsh-completion,Zsh,Oh My Zsh,Zsh Completion,我的~/.zshrc中有以下别名: ~ which pulseaudio-restart pulseaudio-restart: aliased to killall pulseaudio && pulseaudio --start Zsh是否可以配置为键入restart将输出mepulseaudio restart作为建议,因为它包含字符串restart 当前,键入restart只会显示: ~ rest restart restore-trash 是的,这是
~/.zshrc
中有以下别名:
~ which pulseaudio-restart
pulseaudio-restart: aliased to killall pulseaudio && pulseaudio --start
Zsh是否可以配置为键入restart
将输出mepulseaudio restart
作为建议,因为它包含字符串restart
当前,键入restart
只会显示:
~ rest
restart restore-trash
是的,这是可能的。为此,您必须设置/修改完成模块的
匹配器列表
样式。这可以通过以下命令完成:
zstyle ':completion:*' matcher-list 'l:|=* r:|=*'
这会告诉补全符在键入的单词的左侧和右侧查找补全(具体信息可在zshcompwid(1)
中找到)
正如名称匹配器列表
所示,可能存在多个匹配规范,在这种情况下,重要的是'l:|=*r:|=*'
是第一个。规范将按其出现的顺序进行尝试,直到有东西返回匹配
对于
oh my zsh
,matcher list
在lib/completion.zsh中设置,它已经包含所需的规范,但仅作为最后一个选项。加载噢,我的zsh
后,您可以在那里更改顺序或在~/.zshrc
中添加您自己的设置。非常好的解决方案!虽然我确实使用了ohmyzsh
,但我只是在我的~/.zshrc
底部添加了zstyle::完成:“'matcher list'l:|=*r:|=*”
,效果非常好!为什么不给别名命名重新启动pulseaudio
?因为您使用的是制表符补全,所以别名的确切名称似乎并不重要。这一点很好。但是,对我来说,更容易记住pulseaudio restart
,因为我知道我正在寻找与pulseaudio
相关的命令。