【发布时间】:2014-04-14 22:53:17
【问题描述】:
我正在尝试使用 Tablular 匹配一行中的第一个赋值运算符,忽略该行中包含 = 的其他运算符(例如 ==、<=、>= 、/=、!=、~=等)
到目前为止,我得到的最好的结果如下:
:Tabularize /\zs[=<>/!]\@<!=[=<>/!]\@!\ze/<CR>
它的作用是匹配=,确保它的任一侧都不是=、<、>、/ 或!。
如果我在一行中只有一个作业,则此方法有效,例如:
one = uno
two = dos
three = tres
变成
one = uno
two = dos
three = tres
但是,如果我在一行中有多个作业,例如:
one = uno = alpha
two = dos = beta
three = tres = gamma
然后我最终得到(注意对齐的第二组等号):
one = uno = alpha
two = dos = beta
three = tres = gamma
我真正想要的只是(注意第二组等号未对齐):
one = uno = alpha
two = dos = beta
three = tres = gamma
我真正想要的是让 Tablular 仅匹配上面的第一个赋值运算符,注意不要匹配其中也包含 = 的其他运算符。
我必须对模式/\zs[=<>/!]\@<!=[=<>/!]\@!\ze/ 做什么才能实现这一点?
【问题讨论】:
标签: regex vim variable-assignment tabular