Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何让Ctrl Backspace在gnome终端中删除vim中的单词?_Linux_Vim_Ascii_Gnome Terminal - Fatal编程技术网

Linux 如何让Ctrl Backspace在gnome终端中删除vim中的单词?

Linux 如何让Ctrl Backspace在gnome终端中删除vim中的单词?,linux,vim,ascii,gnome-terminal,Linux,Vim,Ascii,Gnome Terminal,我想在vim插入模式下用Ctrl-Backspace删除当前单词。在xterm内部,我可以通过 :inoremap <C-H> <C-W> :inoremap 但在gnome终端中,我无法找到一种方法来实现它 在vim插入模式下,如果我键入control-v,然后按backspace,我会在xterm中得到^H,然后^?在gnome终端中。不幸的是 :inoremap <C-?> <C-W> :inoremap 在gnome终端中不做这个把

我想在vim插入模式下用Ctrl-Backspace删除当前单词。在xterm内部,我可以通过

:inoremap <C-H> <C-W>
:inoremap
但在gnome终端中,我无法找到一种方法来实现它

在vim插入模式下,如果我键入control-v,然后按backspace,我会在xterm中得到^H,然后^?在gnome终端中。不幸的是

:inoremap <C-?> <C-W>
:inoremap
在gnome终端中不做这个把戏;控件退格只会擦除单个字符

关于ASCII码:

Gnome终端允许您在编辑->配置文件首选项->兼容性下更改退格字符。不幸的是,据我所知,没有任何选项是有效的:无论我通过设置应用到Backspace的字符是什么,如果我尝试映射字符本身,比如

:inoremap <C-H> <C-W>
:inoremap
然后,常规退格和控制退格都会删除整个单词;如果我尝试映射控件加上那个字符

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

然后,常规退格和控制退格只需删除一个字符。

gnome终端的libvte需要修补

libvte已经有了几个映射退格的选项,其中没有一个可以区分Ctrl退格。它需要一个这样的选项,可能是一个遵循linux控制台行为的选项(^?表示退格,^H表示Ctrl退格)。看


2015年更新:这已在中修复


libvte 0.41.90、0.40.3和更新版本都有修复程序。

我们如何才能让此修补程序正常工作?我需要采取什么步骤(重新编译libvte和gnome终端)?@StevenLu转发补丁,将配置公开给gnome term(您可以直接从gconf编辑器编辑gconf/dconf),确保重新编译的libvte在加载路径中。看起来这个补丁上个月得到了一些关注,可能很快就会发布。等不及了。我需要控制台vim中的ctrl退格以保持理智。