Vim,Tabular和Ruby 1.9哈希

时间:2012-01-25 03:14:28

标签: vim hash alignment tabular ruby-1.9

假设我有以下选项Hash作为Ruby 1.9.x中方法的参数:

my_method :arg1,
  some_option: "value 1"
  some_other_option:true
  option_three: 123

使用Tabular VIM插件,正则表达式将获得选项哈希对齐如下:

my_method :arg1,
  some_option:       "value 1"
  some_other_option: true
  option_three:      123

:必须保持与密钥的连接,例如,与JSON不同。

也许更具视觉吸引力的风格,看起来更加一致:

my_method :arg1,
        some_option: "value 1"
  some_other_option: true
       option_three: 123

有没有人知道如何使用Tabular完成这些对齐?

谢谢!

2 个答案:

答案 0 :(得分:13)

为了获得第一个对齐,可以使用命令

:Tab/\w:\zs/l0l1

为了将哈希键对齐到右边,似乎不可避免地只选择 在应用:Tabular命令之前包含它们的行

:Tab/\w:\zs/r0l1l0

答案 1 :(得分:1)

我经常使用Tabular,但我从未找到尝试其“高级”功能的机会。 :help tabular中提供了与您的示例类似的案例:

:Tabularize /,/r1c1l0

        Some short phrase , some other phrase
A much longer phrase here , and another long phrase

使用它所谓的“格式说明符”。

因此,将此命令应用于选项(在视觉选择之后)将起到作用:

:'<,'>Tabularize /:/r1c1l0

my_method :arg1,
        some_option : "value 1"
  some_other_option : true
       option_three : 123

自我注意:使用Tabular进行更多操作。