Скажем, я набрал команду в терминале 'mv * .jpg .. \ photos' и, когда я печатаю, понимаю, что больше не хочу выполнять эту команду вообще. Я хочу просто удалить все утверждение. Я не хочу очищать весь экран или удалять историю bash. Я просто хочу прервать текущую строку и стереть ее.
Есть ли сочетание клавиш или мне нужно удалить каждый символ?
Многие программы, которые ждут, пока вы наберете командную строку, а затем выполните эту строку, включая bash, принимают Ctrl+, Cчтобы означать «Прервать текущую задачу и вернуться к основному приглашению».
Несколько программ, в том числе bash, принимают Ctrl+ U( команда «Очистить» от терминала в OS X ) для обозначения «стереть начало строки до курсора» (или «стереть всю строку»).
В bash наблюдаемые различия между Ctrl+ Cи Ctrl+ Uвключают:
Иногда вы хотите прекратить вводить команду, но ввести ее в историю оболочки, чтобы запустить позже. Полезный трюк - поместить
#
в начало строки и выполнить ее: поскольку строка теперь является комментарием, она ничего не будет делать. В bash есть комбинация клавиш: Alt+ #.источник
Существует
readline
функция, которая, вероятно, не связана с нажатием клавишиkill-whole-line
, которая убивает всю строку, а не только убивает часть перед курсором (unix-line-discard
что является неправильным и связано с Ctrl- u).Вы можете связать это с любым доступным нажатием клавиши. Мне нравится ShiftAlt- Uтак как это связанная функция. Это нажатие клавиши может быть связано с тем,
do-lowercase-version
что оно делает то, что делает несмещенная версия (в данном случаеupcase-word
). Поскольку нам для этого не нужны два ключа, давайте использовать этот.Вы можете попробовать это в командной строке, создав привязку следующим образом:
или сделайте это постоянным, поместив эту строку в ваш
~/.inputrc
файл:Чтобы отменить Ctrl- uили ShiftAlt- U(или любую операцию, которая может быть отменена), нажмите Ctrl- Shift- _(подчеркивание) или Ctrl- x Ctrl- u(два нажатия клавиш). Или вы можете вставить (вернуть) то, что вы убили, нажав Ctrl- yчто можно повторить, если вам нужно несколько копий этого текста.
Кстати, если вы хотите убить текст от курсора до конца строки, вы можете нажать Ctrl- k. Таким образом, вместо привязки, описанной выше, вы можете уничтожить целую строку, нажав Ctrl- u Ctrl- k. Только часть, убитая вторым из этих нажатий клавиш, будет сохранена в буфере уничтожения, но вы все равно можете сделать отмену дважды, чтобы восстановить их оба.
источник