2011-04-25 16 views
6

Me pregunto si Está posible guión de auto Código rieles en Vim en lugar de esto:¿Cómo puedo sangrar el código Ruby and Rails en Vim?

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

a esto:

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

Respuesta

8

La mejor manera de hacer esto no es en realidad para utilizar construido -en alineación en Vim, pero más bien en Align Plugin por Dr. Chip, que se utiliza para alinear horizontalmente símbolos arbitrarios en columnas verticales.

1,3Align => se alineará en el =>, por ejemplo. Puede obtener detalles muy detallados con el orden, etc., mediante el uso de la función AlignCtrl, pero la extensión de su funcionalidad es probable que quede en su documentación. :)

+1

Thank's @sleepynate me di cuenta de que trabaja con los siguientes comandos: ': AlignCtrl Wlp0P1: : Alinear: : AlignCtrl Wlp1P1: : align =>' –

0

Uso los complementos Align y Tabular.

Align tiene algunas bonitas alineaciones preconstruidas, mientras que Tabular le permite diseñar una expresión regular que se utilizará para hacer coincidir los campos. Me encuentro utilizando Tabular más en estos días, pero su kilometraje puede variar.

1

Gracias por las respuestas.

Si alguien necesita esto también, en Tabular esto funciona con:

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

Si desea utilizar esto en una función en su vimrc:

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

Entonces sólo tiene que seleccionar el texto en Visual mode y presione \iv para que esto suceda.