我经常需要在vim中将一些内容粘贴到新行。我通常会这样做:
o<Esc>p
这个命令会插入一个新行并进入插入模式,之后退出插入模式,并最终粘贴。
需要三个按键。不是很高效。还有更好的想法吗?
我经常需要在vim中将一些内容粘贴到新行。我通常会这样做:
o<Esc>p
这个命令会插入一个新行并进入插入模式,之后退出插入模式,并最终粘贴。
需要三个按键。不是很高效。还有更好的想法吗?
nnoremap <leader>p oq<BS><Esc>p
。前提条件:您已映射了“leader”,并且在您的.vimrc
中设置了set autoindent
。解释:使用“o”创建一个新行,“q”被输入,然后退格(以保留缩进),最后使用“esc”返回普通模式,您就可以粘贴内容了。请注意保留HTML标记。nnoremap <leader>p m`o<ESC>p``
nnoremap <leader>P m`O<ESC>p``
简单解释一下:
m`
:在当前光标位置设置一个标记。o<Esc>p
:创建一个新行并将文本粘贴到该行中。O<Esc>P
:在上方创建一个新行并将文本粘贴到该行中。``
:将光标放回原始位置。有关Vim中标记的更多信息,请参见:h mark
。
CTRL-R "
在插入模式下粘贴。三个按键,但不需要退出插入模式,如果您要在插入模式下结束,则可以节省一个按键。https://dev59.com/D3E85IYBdhLWcg3wRBRU#2861909
这个解决方案似乎只适用于复制文本块从新行开始的情况(而不是在一行内抓取文本片段),但您始终可以从要抓取的最后一个字符开始复制,然后导航到所需复制块开始之前的行末的最后一个字符。 然后,当您想要粘贴它时,请将光标放置在您希望粘贴文本的下面一行的末尾,然后按p键。 如果我没有解释错,这应该提供您正在寻找的效果。