Как получить Ctrl-Backspace для удаления слова в vim внутри gnome-терминала? - PullRequest
10 голосов
/ 26 апреля 2010

Я бы хотел, чтобы Ctrl-Backspace удалял текущее слово в режиме вставки vim. Изнутри xterm я могу осуществить это через

:inoremap <C-H> <C-W>

но в gnome-Terminal я не могу придумать, как это сделать.

Когда в режиме вставки vim я набираю control-v, а затем нажимаю backspace, я получаю ^ H в xterm и ^? в гном-терминале. К сожалению,

:inoremap <C-?> <C-W>

не работает в gnome-терминал; control-backspace просто стирает один символ, несмотря ни на что.

Относительно кодов ASCII:

Gnome-терминал позволяет вам изменять символ возврата в «Правка» -> «Настройки профиля» -> «Совместимость». К сожалению, ни одна опция не работает, насколько я могу судить: какой бы символ я ни применял к Backspace через настройки, если я попытаюсь отобразить сам символ, например

:inoremap <C-H> <C-W>

тогда обычные клавиши возврата и управления-возврата удаляют целое слово; и если я попытаюсь сопоставить управление плюс этот символ, как

:inoremap <C-^H> <C-W>

тогда обычные backspace и control-backspace просто стирают один символ.

1 Ответ

10 голосов
/ 26 июня 2010

libvte терминала gnome необходимо будет пропатчить.

У libvte уже есть несколько опций для отображения backspace, ни один из которых не различает Ctrl-backspace. Для этого нужна опция, которая, возможно, соответствует поведению консоли linux (^? Для возврата, ^ H для Ctrl-возврата). Смотрите эту ошибку гнома .


Обновление 2015: исправлено в 23c7cd0f99d504cbab06d4c27254d4f3e2807ba8 .

libvte 0.41.90, 0.40.3 и новее имеют исправление.

...