我在和鱼玩耍时注意到了这个方便的行为
如果我输入wget -<tab><tab><tab>
,我就会进入交互式菜单。然而,当我打字时,我搜索了参数本身的描述。我在 zsh 中尝试过这一点,在这个菜单中输入似乎只会让我回到交互式提示符。有没有办法在zsh中实现类似的功能?
答案1
尝试将其放入您的.zshrc
文件中:
# load module for list-style selection
zmodload zsh/complist
# use the module above for autocomplete selection
zstyle ':completion:*' menu yes select
# now we can define keybindings for complist module
# you want to trigger search on autocomplete items
# so we'll bind some key to trigger history-incremental-search-forward function
bindkey -M menuselect '?' history-incremental-search-forward
现在,如果您键入wget -<tab>
带有自动完成功能的菜单,则会出现。我们为此菜单定义了按键绑定,因此如果您按下?
搜索线,则会出现在补全的顶部:
davidsykora~%wget --referer
isearch: refe
一些额外的提示:
- 您还可以定义
bindkey -M menuselect '/' history-incremental-search-backward
向后搜索 - 如果您
?
在搜索过程中再次按下,选择将跳转到下一个搜索结果。用于/
跳转到上一个结果 - 需要进行大量调整才能使其按您想要的方式工作,所以请看一下
complist
文档查找附加功能和选项 - 对我来说,使用
vi-insert
complist 函数通常要快得多 - 它根据您输入的内容过滤补全。
答案2
我认为这符合你的要求:
zmodload zsh/complist
setopt menucomplete
zstyle ':completion:*' menu select=0 search
这将导致当您点击选项卡时显示列表,然后如果您继续键入,它将通过增量搜索来搜索可用选项,包括描述。
您可能还对相同的配置感兴趣,但使用交互式而不是搜索。在这种情况下,当您键入时,它会将补全内容过滤为仅与您迄今为止键入的内容相匹配的补全内容。