我只是想知道是否可以在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 }
答案 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)