如何获得Ctrl-Backspace在gnome-terminal中删除vim中的单词?

我希望Ctrl-Backspace在vim插入模式下删除当前单词。 从xterm内我可以通过

:inoremap <CH> <CW> 

但在侏儒terminal,我无法想出一个办法,使之发生。

在vim插入模式下,如果我inputcontrol-v,然后按退格键,我会在xterm中得到^ H,而^? 在侏儒terminal。 不幸,

 :inoremap <C-?> <CW> 

在gnome-terminal中没有办法; 无论如何,控制退格只会删除单个字符。

关于ASCII码:

侏儒terminal让你改变退格字符在编辑 – >configuration文件首选项 – >兼容性。 不幸的是,就我所知,没有任何选项可行:我通过设置应用于Backspace的任何字符,如果我尝试映射字符本身,比如

 :inoremap <CH> <CW> 

那么常规的退格和控制退格都会擦掉整个单词; 如果我尝试映射控制加上这个字符,就像

 :inoremap <C-^H> <CW> 

那么正常的退格和控制退格只会抹去一个字符。

Solutions Collecting From Web of "如何获得Ctrl-Backspace在gnome-terminal中删除vim中的单词?"

GNOME终端的libvte将需要修补。

libvte已经有了几个选项来映射退格,但是没有一个区别Ctrl-backspace。 它需要一个选项,可能是遵循Linux控制台的行为(^?用于退格,^ H用于Ctrl-backspace)。 看到这个GNOME的bug 。


2015年更新:这是固定在23c7cd0f99d504cbab06d4c27254d4f3e2807ba8 。

libvte 0.41.90,0.40.3和更新有修复。