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

12

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

chiborg
источник

Ответы:

20

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

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

Эдуардо Иванец
источник
5

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

Гленн Джекман
источник
5

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

bindkey '^L' push-line

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

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

Калеб
источник
0

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

Миннер
источник