【问题标题】:vim remap with a newline at the endvim 重新映射,最后换行
【发布时间】:2019-01-06 05:33:01
【问题描述】:

我试图在我的 vimrc 中重新映射,添加一个 sn-p,然后在插入模式下转到下一行:

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

sn-p import pdb;pdb.set_trace() 被插入到我当前的缓冲区中,但 vim 中的光标仍然在同一行。插入sn-p后有什么办法让光标移到下一行?

【问题讨论】:

标签: vim


【解决方案1】:

对我来说,您的映射有效,除了在缓冲区的末尾(当您报告时,它会发出哔哔声并将光标保持在插入行的末尾)。

原因是<esc> 和o 之间的空格。 :help <Space> 是一个运动(向右,就像l),如果光标不能移动到那里(在缓冲区的末尾,也可能在其他地方,取决于'whichwrap' 选项),Vim 会发出哔哔声并中止映射;即之后的所有键都将被忽略。

解决方法很简单:删除多余的空格,映射将在任何地方都有效!

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

【讨论】:

    【解决方案2】:

    这个怎么样:

    nnoremap <leader>b oimport pdb;<CR>pdb.set_trace()<CR>
    

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2014-12-30
      • 2012-01-13
      • 2020-03-09
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多