在终止符中映射 ctrl-backspace

use*_*044 8 vim terminator

我最近开始使用 Vim。在以前的编辑器中,我习惯于按Ctrl-删除整个单词Backspace。查看文档后,我发现这是通过在 Vim 中按Ctrl-w来完成的。问题是,在习惯按Ctrl- 之后w,每次我拼错一个单词时,我都开始关闭标签和聊天(在写这个问题时,我关闭了这个标签 5 次)。所以我检查了如何在 Vim 中映射键并尝试了这个:

:imap <C-BS> <C-w>
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有奏效。经过一番研究,我发现终端无法区分Ctrl-BackspaceBackspace. 我看到了一些黑客和补丁来解决这个问题,但我无法让他们在终结者(这是我想使用的模拟器)上工作。

有什么方法可以映射Ctrl-Backspace在 Vim 中使用终结器时?

Ing*_*kat 8

由于键盘输入在内部处理的方式,不幸的是,这在今天通常是不可能的。某些组合键,例如Ctrl+ 非字母无法映射,并且无法区分Ctrl+ 字母与Ctrl+ Shift+ 字母。(除非您的终端为其发送了一个不同的termcap代码,而大多数情况下不会。)在插入或命令行模式下,尝试键入组合键。如果没有任何反应/被插入,则不能使用该组合键。这也适用于<Tab>/ <C-I><CR>/ <C-M>/ <Esc>/<C-[>等(仅例外是<BS>/ <C-H>)。这是一个已知的痛点,并在vim_dev各种讨论和#vim IRC频道的主题。

有些人(最重要的是 Paul LeoNerd Evans)想要解决这个问题(即使对于支持这个的终端中的控制台 Vim),并且已经提出了各种建议,cp。http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

但截至今天,还没有补丁或志愿者出现,尽管许多人表示希望在未来的 Vim 8 主要版本中拥有它。