在 vim 中,如何可视化 select 以前粘贴的文本
In vim, how to visual select previously pasted text
我通常会 select 一个块,然后 copy/cut 它在其他地方,然后我发现自己总是格式化粘贴的文本,所以有没有办法快速可视化 select 文本再次.
每个修改缓冲区(和 yanks)的命令都会在更改区域周围设置 '[
和 ']
标记。因此,您可以通过以下方式重新格式化粘贴的块:
`[v`]=
有些人甚至使用以下映射来重新选择最后修改的文本块:
nnoremap <expr> gV '`[' . getregtype()[0] . '`]'
使用此映射,您只需 gV=
并设置刚刚粘贴的文本的格式。
然而,如果您有 unimpaired.vim 插件并且您正在按行粘贴,您可以使用它提供的 =p
命令。这将一次性粘贴并重新格式化文本。它还提供了一些其他替代粘贴命令 >p
例如,将粘贴更深的一个缩进级别。
我使用的方式很简单。粘贴后光标位于粘贴文本的开头。按V切换到视觉选择,按']到粘贴的末尾。
它们是 3 个按键。如果它太长那么你可以为 p
做映射
map p pV'[
map P PV'[
对于视觉模式,gv
是重新选择上一个区域的标准方式。
如果要在区域的开始位置和结束位置之间切换,只需按 o
。
正如其他答案所提到的,您可以在这个重新选择的区域上应用标准 =
命令。
p
或 P
粘贴后效果很好。
优点是不需要任何自定义映射。
我通常会 select 一个块,然后 copy/cut 它在其他地方,然后我发现自己总是格式化粘贴的文本,所以有没有办法快速可视化 select 文本再次.
每个修改缓冲区(和 yanks)的命令都会在更改区域周围设置 '[
和 ']
标记。因此,您可以通过以下方式重新格式化粘贴的块:
`[v`]=
有些人甚至使用以下映射来重新选择最后修改的文本块:
nnoremap <expr> gV '`[' . getregtype()[0] . '`]'
使用此映射,您只需 gV=
并设置刚刚粘贴的文本的格式。
然而,如果您有 unimpaired.vim 插件并且您正在按行粘贴,您可以使用它提供的 =p
命令。这将一次性粘贴并重新格式化文本。它还提供了一些其他替代粘贴命令 >p
例如,将粘贴更深的一个缩进级别。
我使用的方式很简单。粘贴后光标位于粘贴文本的开头。按V切换到视觉选择,按']到粘贴的末尾。
它们是 3 个按键。如果它太长那么你可以为 p
做映射map p pV'[
map P PV'[
对于视觉模式,gv
是重新选择上一个区域的标准方式。
如果要在区域的开始位置和结束位置之间切换,只需按 o
。
正如其他答案所提到的,您可以在这个重新选择的区域上应用标准 =
命令。
p
或 P
粘贴后效果很好。
优点是不需要任何自定义映射。