我已经添加了这些快捷方式来复制基于:t
命令的行,其中:t.
将当前行复制到下一行(将光标保持在这对行中的第二行) ),:t-1
将当前行复制到前一行(将光标保持在该对行的第一行)。
nmap <leader>D :t-1<cr>
nmap <leader>d :t.<cr>
在这两种情况下,命令都会将光标位置移动到已创建的行的开头。如何将光标保持在新线上的相同位置(例如,从线的起点开始20个字符)?
答案 0 :(得分:2)
最简单的解决方案是使用
:set nostartofline
使ex命令尽可能保留光标列,请参阅h:nosol
答案 1 :(得分:1)
这是一个解决方案:
nmap <leader>D mayyp`a
nmap <leader>d mayyP`a
首先在当前光标位置放置一个名为a
(ma
)的标记,然后复制当前行(yy
)并将其粘贴到下方(p
)。之后,它返回到`a
的原始光标位置。第二个映射使用P
而不是p
将该行粘贴到当前行之上。
这应该做你期望的事。