我正试图在我的vimrc中重新映射一个片段,然后在插入模式下转到下一行:
:nnoremap <leader>b oimport pdb;pdb.set_trace()<esc> o
片段import pdb;pdb.set_trace()
被插入到我当前的缓冲区中,但vim中的光标仍在同一行上。插入代码段后,有没有办法将光标移到下一行?
对我来说,您的映射是有效的,除了在缓冲区的末尾(当您报告时,它会发出嘟嘟声,并将光标保持在插入行的末尾)。
原因是<esc>
和o
之间的空间。:help <Space>
是一个运动(向右,就像l
一样),如果光标不能移动到那里(在缓冲区的末尾,根据'whichwrap'
选项,也可能移动到其他地方),Vim会发出蜂鸣声并中止映射;即,之后的所有密钥都被忽略。
修复方法很简单:去掉多余的空白,映射就可以在任何地方工作!
nnoremap <leader>b oimport pdb;pdb.set_trace()<esc>o
这个怎么样:
nnoremap <leader>b oimport pdb;<CR>pdb.set_trace()<CR>