我正在尝试在vimrc中进行重新映射以添加一个代码段,然后在“插入”模式下转到下一行:
:nnoremap <leader>b oimport pdb;pdb.set_trace()<esc> o
代码段import pdb;pdb.set_trace()
被插入到我当前的缓冲区中,但是vim中的光标保持在同一行。插入代码段后,是否有任何方法可使光标移动到下一行?
答案 0 :(得分:2)
如何?
nnoremap <leader>b oimport pdb;<CR>pdb.set_trace()<CR>
答案 1 :(得分:2)
对我来说,您的映射有效,除了在缓冲区的末尾(当您报告时,它会发出哔声并将光标保持在插入行的末尾)。
原因是<esc>
和o
之间的空格。 :help <Space>
是一种动作(向右移动,就像l
一样),并且如果光标不能移动到那里(在缓冲区的末尾,也可能取决于'whichwrap'
选项,在其他地方) Vim发出哔声并中止映射;也就是说,之后的所有键都会被忽略。
修复很容易:删除多余的空格,映射将在任何地方都可用!
nnoremap <leader>b oimport pdb;pdb.set_trace()<esc>o