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

aaaa^n
                        bbbb^n
cccc^n

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

最佳答案

可能最简单的方法是

set virtualedit=all

转到您要选择的块的左上角。使用逐块可视选择(<C-V>)并选择所需的行。然后点击$以将可视块扩展到该行的末尾。

然后用y抽出选择

然后键入gvp以将您拖拽的行重新粘贴到自身上。 (gv重新选择最后一个可视块)。完成后,这会将所有行扩展为最长行的长度+ 1。

起作用的原因。使用虚拟编辑时,可视选择是将每行的长度延长到将其放入寄存器时的最长长度。

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

关于vim - 如何在Vim中标准化文本块的空格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17866723/

10-16 11:31