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

Sou*_*mya 3 zsh autocomplete

我在一个文件夹中,其中包含以下文件:

aaa1  aaa2  aaa3  bbb1  bbb2  bbc1  bbc2
Run Code Online (Sandbox Code Playgroud)

我已经cd a在提示下输入了。目前,

  • 按下Tab完成cd aaa
  • 然后另一个调Tab出菜单 ( aaa1/ aaa2/ aaa3/)
  • 最后三分之一Tab完成cd aaa1/
  • 和随后的按下循环通过菜单

我想结合 first 和 second Tab,以便:

  • Tab完成cd aaa 并调出菜单
  • 按另一个Tab完成cd aaa1/
  • 随后按像往常一样循环菜单

或者

  • 按下Tab完成cd aaa
  • 按另一个调Tab出菜单完成cd aaa1/
  • 随后按像往常一样循环菜单

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

thr*_*rig 5

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

exec zsh -f
zmodload zsh/complist
autoload -U compinit; compinit
bindkey "^I" menu-select
cd a
Run Code Online (Sandbox Code Playgroud)

一样的menucomplete选项:

exec zsh -f
autoload -U compinit; compinit
setopt menucomplete
cd a
Run Code Online (Sandbox Code Playgroud)

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

exec zsh -f
autoload -U compinit; compinit
setopt nolistambiguous
cd a
Run Code Online (Sandbox Code Playgroud)

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

  • `setopt nolistambiguous` 工作得很好。谢谢! (2认同)