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