在我的.vimrc
文件中,我有以下两行:
noremap! <C-PageDown> :bnext <CR>
noremap! <C-PageUp> :bprev <CR>
但它们不起作用!在插入模式下,键入
<C-v><C-PageDown>
返回
<C-PageDown>
(字面意思),对于<C-PageUp>
也是如此,如果我试图执行命令,我将得到
:bnext
(加上换行符)。在正常模式下没有效果。因此,我知道密钥映射并没有被X
或我的shell所吞噬,但是还会有什么问题呢?其他关键地图运作良好。
发布于 2010-09-27 04:06:48
解决了!
noremap <C-PageDown> :bnext <CR>
noremap <C-PageUp> :bprev <CR>
inoremap <C_PageDown> <C-\><C-O>:bnext <CR>
inoremap <C_PageUp> <C-\><C-O>:bprev <CR>
在插入模式中,键映射的RHS上的任何内容都是按字面顺序插入的,因此我们需要使用<C-O>
,它为单个命令进入正常模式。<C-\>
阻止游标向左移动,这是在一行末尾调用<C-O>
时发生的。
还请注意,您不能在<C-O>
和:bnext
之间留出一个空间,否则<C-O>
会吃掉它。
发布于 2010-09-26 22:45:22
可能是这样,因为vim已经使用这个键来切换选项卡页?请参阅vims文档中的说明.
发布于 2010-09-27 00:58:36
won :noremap用于正常模式,因此它在插入模式下不能工作。如果希望它在插入模式下工作,请使用:imap。如果您试图使用使其在插入模式下工作,我认为您正在寻找。
https://unix.stackexchange.com/questions/2452
复制相似问题