В zsh с помощью oh-my-zsh вы можете ввести команду расширения истории и нажать пробел, табуляцию или ввод, и она развернется. Например:
ls /path/to/some/directory
cd !$<enter>
будет расширяться до
cd /path/to/some/directory
Но на самом деле он не выполняет команду. Он остается в приглашении для дальнейшего редактирования, и вам нужно нажать Enter еще раз, чтобы фактически запустить команду.
Вчера вечером я устанавливал arch linux и обнаружил, что в настройках zsh, в которые входит оболочка установки, есть расширение истории на вкладке и в пространстве, но нажатие клавиши enter немедленно запускает расширенную команду, не требуя от пользователя повторного нажатия клавиши ввода.
Это то, что я хочу, потому что это спасает меня от нажатия клавиш. Если я хочу редактировать расширение, я мог бы нажать Tab. Если я хочу выполнить команду немедленно, я могу нажать Enter.
Я думаю, что это связано с magic-space
, и я вижу следующую строку в .oh-my-zsh/lib/key-bindings.zsh
bindkey ' ' magic-space # [Space] - do history expansion
Но я не могу найти, где enter
и tab
также связаны с расширением или есть ли какая-либо опция для немедленного запуска команды при вводе.