zsh 补全:菜单和带有单个选项卡的明确前缀?

zsh 补全:菜单和带有单个选项卡的明确前缀?

我所在的文件夹包含以下文件:

aaa1  aaa2  aaa3  bbb1  bbb2  bbc1  bbc2

我已经cd a在提示符下输入了。现在,

  • 按下Tab完成至cd aaa
  • 然后另一个Tab调出菜单 ( aaa1/ aaa2/ aaa3/)
  • 最后第三个Tab完成cd aaa1/
  • 和随后的按键在菜单中循环

我想将第一个和第二个结合起来Tab,以便:

  • 按下Tab完成至cd aaa 调出菜单
  • 按另一个Tab即可完成cd aaa1/
  • 随后的按键将像往常一样在菜单中循环

或者

  • 按下Tab完成至cd aaa
  • 按另一个Tab会弹出菜单完成到cd aaa1/
  • 随后的按键将像往常一样在菜单中循环

是否有任何组合(un)setoptzstyle可以实现这一目标?

答案1

嗯,这个方法似乎直接选择“aaa1”并处于菜单项循环模式:

exec zsh -f
zmodload zsh/complist
autoload -U compinit; compinit
bindkey "^I" menu-select
cd a

选项也是如此menucomplete

exec zsh -f
autoload -U compinit; compinit
setopt menucomplete
cd a

有一个autolist选项,但只列出了输入的选项,cd aaa而不是您想要的cd a情况。唔!这个怎么样:

exec zsh -f
autoload -U compinit; compinit
setopt nolistambiguous
cd a

这将完成cd aaa并显示“aaa*”目录。

相关内容