Зауважте, що це буде працювати в терміналі та режимі 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. Я отримав ідею для цього вирішення з цієї посади в СУ .