Как сделать отступ для Ruby и Rails-кода в Vim? - PullRequest
6 голосов
/ 25 апреля 2011

Мне просто интересно, возможно ли сделать автоматический отступ Rails Code в Vim вместо этого:

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 ]

8 голосов
/ 26 апреля 2011

Лучший способ сделать это - на самом деле не использовать встроенное выравнивание в Vim, а Align Plugin от Dr. Chip, который используется для горизонтального выравнивания произвольных символов в вертикальных столбцах.

Например,

1,3Align => будет выравниваться по =>. Вы можете очень подробно разобраться с порядком и т. Д. С помощью функции AlignCtrl, но степень ее функциональности, скорее всего, оставлена ​​на усмотрение документации. :)

1 голос
/ 28 апреля 2011

Спасибо за ответы.

Если кому-то это тоже нужно, в Tabular это работает с:

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

Если вы хотите использовать это в функциив вашем vimrc:

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

Таким образом, вы просто выбираете текст в визуальном режиме и нажимаете \iv, чтобы это произошло.

0 голосов
/ 26 апреля 2011

Я использую плагины Align и Tabular .

Выравнивание имеет несколько хороших предварительно построенных выравниваний, в то время как Tabular позволяет создавать регулярные выражения, которые будут использоваться для сопоставления полей. В эти дни я больше использую Tabular, но ваш пробег может отличаться.

...