我正在使用中的menu select
行为zsh
,该行为会调用光标下方的菜单,您可以在其中看到各种可能性。我为此设置的.zshrc选项是
zstyle ':completion:*' menu select=2
默认情况下,按此Return
菜单中的一个可能性选择仅会完成单词-它实际上不会发送命令。例如,我可能会得到这样的菜单
~ % cd de<TAB>
completing directory:
[Desktop/] Development/
按Return
这里将导致
~ % cd Desktop/
然后,我必须按Return
一个第二时间实际发送命令。
我可以修改此行为以使其Return
同时执行来选择完成和发送命令
bindkey -M menuselect '^M' .accept-line
但是,这有一个问题:有时我需要在不发送命令的情况下完成文件或目录。例如,我可能需要这样做ln -s Desktop Desktop2
-通过这种bindkey
行为,尝试完成Desktop会导致ln -s Desktop/
作为命令发送,并且显然我不希望这样做。
我知道只要按空格就可以让我继续执行该命令,但这已成为一种习惯。
鉴于此,有没有一种方法可以使只有某些命令让您按Return
一次(如cd
),而所有其他命令都需要按两次?
.zshrc
文件不允许您这样做,那么除非您自己调整源代码以支持基于命令的行为,否则答案将是“否”。但是然后您仍然必须定义要执行哪些命令,这本身比单按一个额外的输入单单更