是否可以使用 tab 在缓冲区之间移动,同时保持 Ctrl+i CR-i 作为"前进"的一种方式?



>有没有办法拥有noremap <tab> <c-w><c-w>vim 中,而不会破坏 Ctrl+i 在以前打开的文件中向前遍历,但使用 Ctrl+o "退后一步"?

我今天了解到,显然"Ctrl+i 和 tab 在 vimrc 中被认为是相同的?

是否可以将 Ctrl+i 中的行为与按 tab 键分开? 感觉我在某处错过了明显的东西。

//vim nooub

<C-i><Tab>对于 Vim 和大多数(如果不是全部)终端模拟器来说是无法区分的。因此,将任何内容映射到<Tab>也会将其映射到<C-i>,反之亦然。

请注意,您不应使用noremap。将nnoremap用于非递归正常模式映射,inoremap用于非递归插入模式映射等。

由于键盘输入在内部处理的方式,不幸的是,即使在 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 版本中拥有这个。

相关内容

最新更新