【问题标题】:Align a space delimited list with two variables in unix command line将空格分隔的列表与 unix 命令行中的两个变量对齐
【发布时间】:2015-05-21 19:49:21
【问题描述】:

我有一个看起来像这样的列表

Leslie Knope
Ron Swanson
Tom Haverford
Ann Perkins
April Ludgate
Andy Dwyer
Ben Wyatt
Chris Traeger
Jerry Gergich
Donna Meagle
Mark Brendanawicz
Craig Middlebrooks

我无法更改此列表的结构,但我必须在 Unix 中经常打开它,我想为命令行 vim/less 命令命名,该命令将像这样打开文件:

Leslie   Knope
Ron      Swanson
Tom      Haverford
Ann      Perkins
April    Ludgate
Andy     Dwyer
Ben      Wyatt
Chris    Traeger
Jerry    Gergich
Donna    Meagle
Mark     Brendanawicz
Craig    Middlebrooks

字段对齐的位置。

我认为这可以通过将空格 grep 到制表符,然后使用制表符对齐选项将输出传送到 vim 来完成,尽管我无法让它工作。

【问题讨论】:

  • column -t list.file | vim -
  • vim -mc '%s/ /&\t/' list.file
  • 检查这个问题和答案,它实际上是一个重复:stackoverflow.com/questions/12458729/…
  • @Kent:也有一些 Vim 特定的方法可以做到这一点。 :Tabularize 尤其比其他解决方案更有用。
  • @lcd047 你说得对,我是vim用户/(粉丝)。确实有 vim 插件可以做自动对齐。但是,如果是more useful than the other solutions,我无法确定。这取决于OP的意见。如果我是他,我只是格式化并保存文本,我不会打开 vim,触发命令并保存。但如果我需要在格式化后继续手动编辑,vim 绝对是最好的工具。

标签: unix vim


【解决方案1】:

在 Vim 中,您可以通过管道将列表传递给 column -t,正如 @Costas 指出的那样:

:%!column -t

或者你可以安装tabular插件,将光标放在列表的第一行,然后运行:

:Tabularize /\s

【讨论】:

    【解决方案2】:

    如果你有 Tabular 插件,这很简单。

    【讨论】:

      猜你喜欢
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 2017-02-09
      • 2021-01-23
      • 1970-01-01
      相关资源
      最近更新 更多