Зауважте, що це буде працювати в терміналі та режимі emacs за замовчуванням (який ви використовуєте, якщо Ctrl+ Wвидаляє попереднє слово для вас). Він не буде працювати в режимі vi-bash і не вплине на сам vi / vim. Отже, це лише часткова відповідь, але найкраще, що може запропонувати цей користувач emacs.
Такими речами керує readline
бібліотека, поведінкою якої можна керувати через ~/.inputrc
. Відредагуйте (або створіть, якщо його немає) ~/.inputrc
та додайте цей рядок:
"\C-H":"\C-W"
Тепер відкрийте новий термінал, і він повинен працювати.
Пояснення
\C-H
Насправді Control+ BackSpace. Ви можете побачити кодові клавіші, натиснувши клавішу Ctrl+, Vпотім клавішу, яку ви шукаєте. Ви побачите, що BackSpaceповертається ^H
.
Тепер має бути можливість прив’язати Control+ BackSpaceдо функції bash, яка видаляє попереднє слово ( backward-kill-word
або unix-word-rubout
) за допомогою "\C-H": backward-kill-word
. Однак я не можу так працювати. Він прекрасно працює з різними клавішами ( "\C-E": backward-kill-word
наприклад, робить Ctrl+ Eвидалити попереднє слово), але чомусь я не можу з ним працювати BackSpace.
Отже, як вирішення, ми просто відображаємо Ctrl+ Backspaceдо Ctrl+, Wщо вже відображено backward-kill-word
. Отже, коли ви натиснете Ctrl+ Backspace, це буде переведено на Ctrl+, Wяке, у свою чергу, надішле backward-kill-word
. Я отримав ідею для цього вирішення з цієї посади в СУ .