vim重新映射换行符

时间:2019-01-06 05:33:02

标签: vim

我正在尝试在vimrc中进行重新映射以添加一个代码段,然后在“插入”模式下转到下一行:

:nnoremap <leader>b oimport pdb;pdb.set_trace()<esc> o

代码段import pdb;pdb.set_trace()被插入到我当前的缓冲区中,但是vim中的光标保持在同一行。插入代码段后,是否有任何方法可使光标移动到下一行?

2 个答案:

答案 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
相关问题