在 vim 中,如何重新映射 <tab> 而不重新映射 <Ctrl+i>?

Jon*_*han 18 vim

我喜欢使用 tab 在拆分窗口之间跳转,所以我map <tab> <C-W><C-W>在我的 .vimrc 中。然而我注意到这使得 Ctrl+I 不再像 Ctrl+I 那样,而是像 Ctrl+W、Ctrl+W。我怎样才能重新映射<tab>但不重新映射<C-i>

Ing*_*kat 12

由于键盘输入是在内部处理的方式,不幸的是,这在今天通常是不可能的,即使在 GVIM 中也是如此。某些组合键,例如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 主要版本中拥有它。