【问题标题】:vim: command to push text to same x coordinate as another linevim:将文本推送到与另一行相同的 x 坐标的命令
【发布时间】:2012-08-01 22:11:03
【问题描述】:

我不确定用正确的词来表达我想要什么,这就是为什么我自己可能很难找到它。我有一个类似 css 的文件:

attr_of_super_long_length: value1,
shorter_attr: value2,
medium_length_attr: value3

我希望能够将光标放在 value1 中的 v 上并复制其 x 坐标,然后转到 vvalue2 中并在 1 次击键中将其推送到相同的缩进 x 坐标(例如,不突出显示和 > )。有任何想法吗?谢谢!

【问题讨论】:

标签: vim


【解决方案1】:

有一些很棒的对齐插件,例如 Aligntabular。我使用了一段时间的 Align,但我已经转向表格,因为我喜欢 this functionality 来制作表格。在表格中,您可以通过直观地选择这些值,然后使用标准 vim 正则表达式执行命令:Tab /:\zs 来完成此操作(请参阅:help pattern)。正如 Tom Whittock 所说,这个问题已经被提出并解决了here

【讨论】:

    【解决方案2】:

    您基本上想左对齐到特定列,但不是整行(如:left 那样),而只是光标右侧的文本。

    幸运的是,我为此编写了一个插件,并立即发布:AlignFromCursor

    在您的示例中,将光标放在value2v 上,按28<Leader>le 或发出:LeftAlignFromCursor 28,结果如下:

    attr_of_super_long_length: value1,
    shorter_attr:              value2,
    medium_length_attr: value3
    

    对于value3,您可以简单地重复.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2019-10-14
      • 2012-05-31
      • 2019-04-25
      • 1970-01-01
      • 2011-04-29
      相关资源
      最近更新 更多