在我当前的系统(带有 zsh 5.0.2 的 openSUSE 12.3)上,如果我已经输入了可能的完成匹配,自动完成功能不会让我选择可能的完成。
例如,如果我所在的目录中有两个名为文件和文件2我输入:
cat file<TAB>
然后会附加一个空格,我不会有任何迹象表明文件2也是一个可能的匹配。是否可以改变这种行为? Bash 在这种情况下表现得更好(它将显示文件和文件2不添加空格),但是任何不隐藏可能匹配的解决方案也会很有趣。
答案1
zstyle ':completion:*' accept-exact false
从zshcompsys(1)
accept-exact
This is tested for the default tag in addition to the tags valid for the current context. If it is set to `true' and any of the trial matches is the
same as the string on the command line, this match will immediately be accepted (even if it would otherwise be considered ambiguous).
您还可以使 zstyle 的上下文更加具体,而不是影响每种完成类型。
答案2
这当然是可能的,因为我在 openSUSE 12.3 上也有 zsh 5.0.2,并且我的 zsh 的行为完全符合您想要的方式。不幸的是我不记得我的哪个设置.zshrc
可以解决这个问题,但是你可以你自己看看希望你能够弄清楚。我猜这要么是选项之一setopt
,要么是其中一行zstyle
,但自从我写其中大部分内容以来已经很多年了......