Існує 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. Тільки частина, вбита другим із цих натискань клавіш, буде збережена в буфері вбивства, але ви все одно можете скасувати двічі, щоб відновити їх обидва.