我最近开始使用 Vim。从以前的编辑器中,我习惯通过按Ctrl-删除整个单词Backspace。查看文档后,我发现这是通过按Vim 中的Ctrl-完成的w。问题是,习惯了按Ctrl-后w,每次我拼错一个单词时,我都会关闭标签和聊天(在写这个问题时,我关闭了这个标签 5 次)。所以我检查了如何在 Vim 中映射键并尝试了这个:
:imap <C-BS> <C-w>
不幸的是,它不起作用。经过一番研究,我发现终端无法区分Ctrl-Backspace和Backspace。我看到了一些解决这个问题的黑客和补丁,但我无法让它们在终结者(我想要使用的模拟器)上运行。
在 Vim 中使用终结符时,有没有办法映射Ctrl- Backspace?
答案1
由于键盘输入的内部处理方式,遗憾的是,目前这通常无法实现。某些组合键(如Ctrl+ 非字母)无法映射,并且无法区分Ctrl+ 字母与Ctrl+ Shift+ 字母。(除非您的终端发送不同的术语表代码,大多数人没有。)在插入或命令行模式下,尝试输入组合键。如果没有任何反应 / 插入,则无法使用该组合键。这也适用于<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 主要版本中拥有这一点。