vim 键映射被回车触发 return
vim key mapping being fired by carriage return
我在 windows 10 上使用 gvim 并试图获得一个好的键盘映射以打开垂直拆分到一个新文件。我第一次尝试
nnoremap <c-m><c-m> :vnew<CR>
但出于某种原因,如果我在正常模式下连续两次按下回车return,我会得到一个新的垂直分割window。所以我把后面的马车return从key map
中取出来了
nnoremap <c-m><c-m> :vnew
如果我在正常模式下按回车 return 三次,仍然会得到一个新的垂直分割 window,出于某种原因,我发现自己这样做了。
为什么在 _vimrc 的按键映射中连一个回车 return 都没有,而回车 return 会引起按键映射?我已经重新启动 vim 没有任何效果。
从Vim的角度来看,<C-m>
是<CR>
,<CR>
是<C-m>
。
它们是 相同的键,所以你不能将某些东西映射到 <C-m>
而不将其映射到 <CR>
,反之亦然。
您需要为您的映射找到另一个组合键。
由于键盘输入的内部处理方式,不幸的是,即使在 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 版本中有这个。
我在 windows 10 上使用 gvim 并试图获得一个好的键盘映射以打开垂直拆分到一个新文件。我第一次尝试
nnoremap <c-m><c-m> :vnew<CR>
但出于某种原因,如果我在正常模式下连续两次按下回车return,我会得到一个新的垂直分割window。所以我把后面的马车return从key map
中取出来了nnoremap <c-m><c-m> :vnew
如果我在正常模式下按回车 return 三次,仍然会得到一个新的垂直分割 window,出于某种原因,我发现自己这样做了。
为什么在 _vimrc 的按键映射中连一个回车 return 都没有,而回车 return 会引起按键映射?我已经重新启动 vim 没有任何效果。
从Vim的角度来看,<C-m>
是<CR>
,<CR>
是<C-m>
。
它们是 相同的键,所以你不能将某些东西映射到 <C-m>
而不将其映射到 <CR>
,反之亦然。
您需要为您的映射找到另一个组合键。
由于键盘输入的内部处理方式,不幸的是,即使在 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 版本中有这个。