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

Mic*_*ach 10 linux vim ascii gnome-terminal

我想在Ctrl-Backspace中删除vim插入模式下的当前单词.从xterm内部我可以通过它来解决这个问题

:inoremap <C-H> <C-W>
Run Code Online (Sandbox Code Playgroud)

但在gnome-terminal中,我无法找到实现它的方法.

当处于vim插入模式时,如果我输入control-v然后按退格键,我在xterm中得到^ H,而^?在侏儒终端.不幸,

:inoremap <C-?> <C-W>
Run Code Online (Sandbox Code Playgroud)

在gnome-terminal中没有做到这一点; control-backspace无论如何都会删除单个字符.

关于ASCII码:

Gnome-terminal允许您更改编辑 - >配置文件首选项 - >兼容性下的退格字符.不幸的是,据我所知,没有选项可行:无论我通过设置应用于Backspace的任何字符,如果我尝试映射字符本身,就像

:inoremap <C-H> <C-W>
Run Code Online (Sandbox Code Playgroud)

然后定期退格和控制退格都擦除整个单词; 如果我尝试映射控制加上那个字符,比如

:inoremap <C-^H> <C-W>
Run Code Online (Sandbox Code Playgroud)

然后定期退格和控制退格只删除一个字符.

Tob*_*obu 10

gnome-terminal的libvte需要修补.

libvte已经有几个映射退格的选项,没有一个选项可以区分Ctrl-backspace.它需要一个选项,可能是一个遵循linux控制台行为的选项(^?表示退格键,^ H表示Ctrl-backspace).看到这个gnome bug.


2015年更新:这是在23c7cd0f99d504cbab06d4c27254d4f3e2807ba8修复的.

libvte 0.41.90,0.40.3和更新有修复.

  • 看起来这个补丁在上个月得到了一些关注,很快就会发布.等不及了.我需要在控制台vim中使用ctrl-backspace来保持理智. (2认同)