Vim:从可视选择的开头开始正则表达式匹配

4

我正在尝试使用vim插件Tabular来对格式不正确的CSS代码进行对齐。不幸的是,我似乎无法理解如何在Vim中从可视选择的开头开始匹配。以下是一些示例代码:

                       color: #a8a8a8;font-family: Helvetica;                                                       

                       color: #d0d0d0;                                                                              
                       font-weight: normal; background-color: inherit; font-size: 13px !important;                  

        background-color: inherit;                                                                                                                             
                             width: 16px; min-width: 16px; display: inline-block; margin-right: 2ex; margin-left: 2px; 
               text-align: center; height: 0; line-height: .5ex; padding-top: 1ex;                          
       background: transparent;                                                                     

我尝试将文本左对齐到视觉块选择的起始位置,但还没有成功,我想知道我哪里出了问题:

'<,'>Tabularize /\%V\s\+\zs\%V/

也就是说,在视觉选择中,匹配任何空格然后开始匹配。这应该一直持续到第一个单词字符并左对齐,但我不认为Tabularize能够识别视觉块选择。此外,\%V没有^的概念,每次都会中断正则表达式。组合^\%V也让我失望了。
有什么建议可以快速在vim中格式化和对齐到视觉块选择的开头吗?

1
你能描述一下你是如何定义视觉块选择的吗?例如,在你的示例中,它开始的列号和结束的列号是什么? - Andrew Radev
@abatishchev: 回滚。这个问题的目的正是要知道如何使用Vim对齐该文本。虽然它与CSS有关,但只是相关的。任何文本都可以使用,因此最好将标签保持不变。CSS标记观察者在这里看到的并不多。 - sidyll
@sidyll:你是对的。对此我很抱歉。 - abatishchev
1个回答

1

你不需要使用Tabular来做那件事。但是,如果你想使用它,可以简单地执行以下操作:

:'<,'>Tab /^\s\+

这里不需要块选择。顺便说一下,使用表格和块选择可能没有太多意义。当事物已经对齐时,它们是有用的。

但是,您应该能够通过使用V以行方式选择,然后只需按=来对齐这些行。或者,使用像=8j这样的动作,避免视觉选择。


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