Vim Tabular:如何忽略长注释

5

我在Vim中使用Tabular来对Python数据文件中的定义和长注释进行对齐:

# A long comment here with many words
param_1 = 42
parameter_2 = 0.25

# Another long comment
para_3 = 'abc'
parameter_number_4 = some_var

如果我在所选内容上使用 Tabularize /=,那么注释也会被处理,而且由于某些注释很长,结果就会变成:
# A long comment here with many words
param_1                               = 42
parameter_2                           = 0.25

# Another long comment
para_3                                = 'abc'
parameter_number_4                    = some_var

这不是我想要的。有没有一种方法可以在选择时忽略以"#"开头的行?从而获得类似这样的结果:
# A long comment here with many words
param_1            = 42
parameter_2        = 0.25

# Another long comment
para_3             = 'abc'
parameter_number_4 = some_var

运行 :Tabularize/= 命令时,如果没有指定范围,则只会对当前行和相邻的匹配行进行对齐。您不会看到您所描述的行为。 - Peter Rincker
1个回答

4
我建议您使用global命令而不是视觉选择来告诉Tabularize需要对齐的内容。在您的情况下,可以这样做:
:%g/^\s*[^#]/Tabularize /=

这会查找文件中注释的每一行,并在其上运行Tabularize /=。如果想要定位更具体的行,可以将%替换为命令行范围(cmdline-range)。你也可以直接向tabularize传递命令行范围(cmdline-range),像这样:

:2,3Tabularize /=

相关帮助主题:

:help cmdline-ranges
:help :g

1
我想要的似乎不可能实现。你所说的方式是逐个对齐每个“块”。但对我来说,这已经足够好了。 - Neraste

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接