Vim 将文本格式化为块(对齐第二列)
很多时候,我的一些代码中有一个初始值设定项列表,如下所示:Vim 将文本格式化为块(对齐第二列),vim,text-formatting,Vim,Text Formatting,很多时候,我的一些代码中有一个初始值设定项列表,如下所示: class Foo(object): def __init__(self, data): self.foo = data.getFoo() self.bar = data.getBar() self.something = data.getSomething() 正如您所看到的,我喜欢像表格一样对齐代码。在很多情况下,上面的代码可以通过编写Vim脚本生成,
class Foo(object):
def __init__(self, data):
self.foo = data.getFoo()
self.bar = data.getBar()
self.something = data.getSomething()
正如您所看到的,我喜欢像表格一样对齐代码。在很多情况下,上面的代码可以通过编写Vim脚本生成,这些代码来自其他一些程序的输出(descripe“foo”;
例如在数据库中)。不幸的是,脚本输出通常如下所示:
class Foo(object):
def __init__(self, data):
self.foo = data.getFoo()
self.bar = data.getBar()
self.something = data.getSomething()
因此,在自动生成th赋值语句之后,我必须手动对齐所有语句以获得所需的外观
现在:有没有办法让vim自动对齐语句的“后半部分”?一种简单的方法是首先在等号周围留出足够的空间:
:s/=/ =/
然后,阻止选择(Ctrl-V
),以便选择所有=
字符和后面的所有内容。猛拉(y
)将其粘贴到其他地方
接下来,取消粘贴行的缩进(10the)就是这样做的。您可以看到它的作用(并学习如何使用它)
更新:我会简单解释一下插件的用法,但是没有更好的解释,所以我强烈建议大家观看
要使用插件,只需调用:Tab/=
,它将对齐文件中的所有等号。如果要指定要对齐的行,只需给它一个范围:5,10Tab/=
,或使用可视模式(v
或v
)要选择所需的行,请按:
,然后插入制表命令,您的命令行将如下所示::“除了前面提到的制表插件之外,还有一个值得尊敬的插件。您能更清楚地解释一下您是如何获得此输出的吗?使用:r something
?我发现了一个vim脚本,声称可以这样做,但我不想将其作为答案发布,因为我没有实际使用它:。另请参见此问题:@romainl-源代码可以是从粘贴/处理的SQL到文件列表的任何内容。可以通过执行一些:r!…
或其他任何操作来读取。非常好,我希望在需要时能记住它…以获得答案n更好的是,您可以在示例中解释如何使用它(如:Tab/=
)。@mliebelt我已经添加了一个快速的解释。但是正如我所说,我给出的任何解释都不会比Drew的视频更好。确实做了很多工作。为什么不简单:只需在所有行中添加足够的制表符/空格,除了在=