【问题标题】:Align right side of assignment with Tabular.vim将赋值右侧与 Tabular.vim 对齐
【发布时间】:2014-06-11 23:35:18
【问题描述】:

使用 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';

为什么上面的表达式会增加多余的空格,我该如何解决?

【问题讨论】:

    标签: regex vim tabular


    【解决方案1】:

    表格使用/^\(.\+=\)\?\s 作为字段分隔符。为了使它看起来更漂亮,Tabular 会在其后放置一个空格,因为它假定字段分隔符不以空格结尾。

    如果您在分隔符后添加l0 标志,您将删除下一个字段左侧的多余空格。

    :Tabularize /^\(.\+=\)\?\s/l0
    

    来自文档

    格式说明符是 l、r 或 c,后跟一个或多个 位数。如果字母是 l,则该字段将左对齐,类似地 用于 r 和右对齐以及 c 和中心对齐。数字 字母后面是要插入的空格数 下一个字段的开始。

    默认格式标志位于g:tabular_default_format,设置为l1

    【讨论】:

      【解决方案2】:

      通过\zs 标记比赛的开始,并使用.* 消耗剩余的线路

      :Tabularize /^\(.\+=\)\?\s\+\zs.*
      

      【讨论】:

      • 技术上可行,但是每次连续运行都会增加另一个空间。有什么方法可以使命令幂等吗?
      • 你可以像@FDinoff所说的那样添加l0标志
      猜你喜欢
      • 1970-01-01
      • 2012-01-24
      • 2020-10-17
      • 2011-01-25
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      • 2016-07-11
      相关资源
      最近更新 更多