如何规范化vim中文本块的空格?

Kev*_*Lee 5 vim

假设我有一个文件(换行符标记为^ n):

aaaa^n
                        bbbb^n
cccc^n
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的命令将空白回填到块的最右边部分(可能使用视觉选择); 我经常看到有关删除前导空格的问题,但在这种情况下,我希望将前导空格标准化为块中最长的非空白字符,如下所示:

aaaa                        ^n
                        bbbb^n
cccc                        ^n
Run Code Online (Sandbox Code Playgroud)

FDi*_*off 4

也许最简单的方法是

set virtualedit=all
Run Code Online (Sandbox Code Playgroud)

转到要选择的块的左上角。使用按块视觉选择 ( <C-V>) 并选择所需的线条。然后点击$将视觉块延伸到行尾。

然后用以下命令拉出选择y

然后输入gvp过去您将其拉回的行。(gv重新选择最后一个可视块)。完成后,这会将所有线延伸为最长线的长度 + 1。

这有效的原因。当您使用虚拟编辑时,视觉选择会将每行延伸到将其放入寄存器时的最长长度。

这将在末尾添加一个额外的空间,可以使用以下命令轻松修复:%s/ $//