Я набираю Ctrl+, Zчтобы «приостановить» вводимую команду, и набираю другую команду. После того, как я выполнил эту команду (или прервал ее с помощью Ctrl+ C), приостановленная команда возвращается для редактирования (даже с запоминанием позиции курсора). В качестве дополнительного удобства, если командная строка пуста, когда я набираю Ctrl+ Z, клавиша bg
вместо этого вызывает встроенную функцию (так что double Ctrl+ Zотправляет запущенную команду непосредственно в фоновый режим).
fancy-ctrl-z () {
emulate -LR zsh
if [[ $#BUFFER -eq 0 ]]; then
bg
zle redisplay
else
zle push-input
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
(Ранее размещено на странице «Напечатайте наполовину набранную команду, пока я проверяю что-то, что в основном имеет решения для bash, где вы не можете сделать что-либо настолько удобное. Это немного более изящная версия встроенной привязки M-q
кpush-line
.)
Это не запускает подоболочку: команда, которую вы вводите после «приостановки» предыдущей, запускается в той же оболочке. Это позволяет вам, например, изменять текущий каталог, если после ввода команды вы поняли, что хотите запустить ее в другом каталоге. Если вы хотите запустить новый экземпляр оболочки, вы можете запустить zsh
из привязки клавиш, но я не думаю, что это особенно полезно.