我喜欢 Zsh 的 Tab 补全,但是当只有一个可能的选项时它令人沮丧,我必须两次 Tab 才能完成文件名。
例如,如果这是目录中的文件列表:
- a.txt
- b.txt
- x.txt
Run Code Online (Sandbox Code Playgroud)
然后我输入cat x<TAB>ZSH,我在提示符下得到这个:
$ cat x
x.txt
Run Code Online (Sandbox Code Playgroud)
我必须再次 TAB 才能获得值。我该怎么做才能让 ZSH 仅使用第一个选项卡完成文件名?
这是我的 setopt:
alwaystoend
autocd
autonamedirs
autopushd
cdablevars
completeinword
correctall
extendedhistory
noflowcontrol
histexpiredupsfirst
histignoredups
histignorespace
histverify
incappendhistory
interactive
longlistjobs
menucomplete
monitor
promptsubst
pushdignoredups
sharehistory
shinstdin
zle
Run Code Online (Sandbox Code Playgroud)
我需要修复的设置是
zstyle '*' single-ignored show
Run Code Online (Sandbox Code Playgroud)
在completion.zshoh-my-zsh的文件中。我把它改成
zstyle '*' single-ignored complete
Run Code Online (Sandbox Code Playgroud)