Назад | Перейти на главную страницу

Сочетание клавиш для сохранения набранной команды и очистки строки

Вы знаете ситуацию: вы наполовину набрали длинную команду (например, сообщение фиксации) и понимаете, что вы забыли выполнить некоторую предварительную команду, которую нельзя добавить с помощью &&. Обычно, когда это случается со мной, я выбираю то, что набрал с помощью мыши, копирую это в буфер обмена, нажимаю Ctrl-U, чтобы очистить строку, запускаю мою предварительную команду и вставляю из буфера обмена. Но, может быть, есть способ получше, желательно без использования мыши? Ищу решения для bash и / или zsh.

После того, как вы использовали CTRL-U, вы можете использовать CTRL-Y, чтобы вставить обратно то, что вы стерли. Он работает и после стирания слова или нескольких слов с помощью CTRL-W.

Обратите внимание, что таким образом вам действительно не нужно ничего копировать в буфер обмена или выделять его мышью - CTRL-U фактически переносит строку в отдельный буфер обмена, так сказать.

Это было недавно спросили и обсудили на сайте SE Unix и Linux. Мой ответ объяснил что, если вы используете zsh в качестве оболочки, вы можете использовать функцию push-line, чтобы спрятать свою незавершенную команду, запустить что-то еще, тогда ваша первая команда вернется, и вы сможете ее завершить. В .zshrc:

bindkey '^L' push-line

Затем используйте Ctrl+L чтобы приостановить текущую команду и вернуться к ней после выполнения чего-то еще.

Было дано несколько других ответов, включая настройки того, как сделать что-то подобное в bash, и некоторые индивидуальные версии этой встроенной функции в zsh.

Добавьте "#" в начало вашей текущей строки. Нажмите Enter, чтобы добавить комментарий в свою историю. Выполните необходимую команду. Подойдите к предыдущей команде и удалите #.

Ты можешь сделать Shift-Alt-3 чтобы прокомментировать текущую строку и перейти к следующей. Затем вы нажимаете up, Ctrl-e, Del и тадам!