如何在Vim中缩进Ruby和Rails代码?

时间:2011-04-25 19:31:17

标签: ruby-on-rails ruby vim indentation

我只是想知道是否可以在Vim中自动缩进Rails代码而不是:

validates :email, :presence => true,
  :format => { :with => email_regex },
  :uniqueness => { :case_sensitive => false }

到此:

validates :email, :presence   => true,
                  :format     => { :with => email_regex },
                  :uniqueness => { :case_sensitive => false }

3 个答案:

答案 0 :(得分:8)

实现这一目标的最佳方法实际上并不是在Vim中使用内置对齐,而是使用Dr. Chip的Align Plugin,它用于在垂直列中水平对齐任意符号。

例如,

1,3Align =>将在=>上对齐。您可以使用AlignCtrl函数获得非常详细的订购等,但其功能的范围可能留给其文档。 :)

答案 1 :(得分:1)

感谢您的回答。

如果有人也需要,Tabular这适用于:

:Tabularize /^[^:]*\zs:/r1c0l0
:Tabularize /^[^=>]*\zs=>/l1

如果你想在vimrc的一个函数中使用它:

function IndentV()
  Tabularize /^[^:]*\zs:/r1c0l0
  Tabularize /^[^=>]*\zs=>/l1
endfunction
map <Leader>iv :call IndentV()<cr>

因此,您只需在视觉模式中选择文字,然后按\iv即可实现。

答案 2 :(得分:0)

我同时使用AlignTabular个插件。

Align有一些很好的预构建对齐,而Tabular允许你设计一个用于匹配字段的正则表达式。这些天我发现自己更多地使用Tabular,但你的里程可能会有所不同。