使用vim表格插件,我试图实现以下目标:
从此转换:
var longString = 'Hello, ' +
'this ' +
'is ' +
'a long' +
'string';
到此:
var longString = 'Hello, ' +
'this ' +
'is ' +
'a long' +
'string';
到目前为止,我最接近的是以下Tabularize命令:
:'<,'>Tabularize /^\(.\+=\)\?\s
然而,这似乎给了我额外的空间:
var longString = 'Hello, ' +
'this ' +
'is ' +
'a long' +
'string';
为什么上面的表达式会添加额外的空格,我该如何修复呢?
答案 0 :(得分:3)
表格使用/^\(.\+=\)\?\s
作为字段分隔符。为了使它看起来不错,Tabular会在它之后添加一个空格,因为它假定字段分隔符不会在空格中结束。
如果在分隔符后添加l0
标记,则会删除下一个字段左侧的额外空格。
:Tabularize /^\(.\+=\)\?\s/l0
来自文档
格式说明符是l,r或c,后跟一个或多个 数字。如果字母是l,则字段将保持对齐,类似 用于r和右对齐以及c和中心对齐。数字 字母后面是要插入之前填充的空格数 下一个字段的开始。
默认格式标志位于g:tabular_default_format
,设置为l1
。
答案 1 :(得分:2)
通过\zs
标记匹配的开头,然后使用.*
来消耗剩余的一行
:Tabularize /^\(.\+=\)\?\s\+\zs.*