在 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

正如其他答案所提到的,您可以在这个重新选择的区域上应用标准 = 命令。

pP 粘贴后效果很好。

优点是不需要任何自定义映射。