【问题标题】:Zsh: Smart autocompletion feature?Zsh:智能自动完成功能?
【发布时间】:2014-06-17 17:41:49
【问题描述】:

我的~/.zshrc 中有以下别名:

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

是否可以通过输入restart 将输出我pulseaudio-restart 作为建议的方式配置Zsh,因为它包含字符串restart

目前,输入restart 只会弹出:

~ rest
restart        restore-trash

【问题讨论】:

  • 你为什么不命名别名restart-pulseaudio?由于您使用的是制表符完成,因此别名的确切名称似乎并不那么重要。
  • 好点。但是,对我来说更容易记住pulseaudio-restart,因为我知道我正在寻找与pulseaudio 相关的命令。

标签: zsh oh-my-zsh zsh-completion


【解决方案1】:

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

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

这告诉补全在输入的单词的左侧和右侧寻找补全(细节可以在zshcompwid(1)找到)。

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


对于oh-my-zshmatcher-list 设置在lib/completion.zsh 中,它已经包含所需的规范,但仅作为最后一个选项。您可以在此处更改顺序,也可以在加载oh-my-zsh 后在~/.zshrc 中添加您自己的设置。

【讨论】:

  • 非常好的解决方案!虽然我确实使用了oh-my-zsh,但我只是在~/.zshrc 的底部添加了zstyle ':completion:*' matcher-list 'l:|=* r:|=*',并且效果很好!
猜你喜欢
  • 2022-08-15
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
相关资源
最近更新 更多