Существует функция readline
которая, вероятно, не привязана к нажатию клавиши с именем kill-whole-line
, которая убивает всю строку, в отличие от уничтожения только части перед курсором (unix-line-discard
которая в некотором смысле неверна и связана Ctrl - U).
Вы можете связать это с любым доступным нажатием клавиши. Мне нравится Shift Alt - U, так как это связанная функция. Это нажатие клавиши может быть связано с do-lowercase-version
что означает, что оно делает то, что делает несмещенная версия (в данном случае upcase-word
). Поскольку для этого нам не нужны два ключа, давайте использовать этот.
Вы можете попробовать это в командной строке, создав привязку следующим образом:
bind '"\eU":kill-whole-line'
или сделайте его постоянным, поместив эту строку в ваш файл ~/.inputrc
:
"\eU":kill-whole-line
Чтобы отменить Ctrl- u или Shift Alt- U (или любую операцию, которая может быть отменена), нажмите Ctrl- Shift- _ (подчеркивание) или Ctrl- x Ctrl- u (два нажатия клавиш). Или вы можете вставить (вернуть) то, что вы убили, нажав Ctrl- y, что можно повторить, если вам нужно несколько копий этого текста.
Кстати, если вы хотите убить текст от курсора до конца строки, вы можете нажать Ctrl - k. Таким образом, вместо привязки, описанной выше, вы можете убить целую строку, нажав Ctrl - u Ctrl - k. Только часть, убитая вторым из этих нажатий клавиш, будет сохранена в буфере уничтожения, но вы все равно можете сделать отмену дважды, чтобы восстановить их оба.