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

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

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

но в терминале gnome я не могу найти способ сделать это.

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

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

не выполняет трюк в терминале gnome; control-backspace просто стирает один символ независимо от того, что.

Что касается кодов ASCII:

Gnome-terminal позволяет вам изменить символ обратного пространства в разделе "Редактировать" → "Настройки профиля" → "Совместимость". К сожалению, ни один параметр не работает, насколько я могу судить: любой символ, который я применяю к Backspace с помощью настроек, если я попытаюсь сопоставить сам символ, например

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

то регулярное обратное пространство и обратное управление управляют как стиранием целого слова; и если я попробую сопоставить элемент управления плюс этот символ, например

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

то регулярное backspace и control-backspace просто стирают один символ.

Ответ 1

gnome-terminal libvte должен быть исправлен.

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


Обновление

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

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