Я использую поведение 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
), но все другие команды требуют нажатия дважды?