2010-01-13 17 views
58

Cada vez que añade un selector de CSS y pulse Enter para definir las propiedades que termina así:¿Cómo cambio el tamaño de las pestañas en Vim?

#selector { 
     property: value; 
} 

(tabuladores de 8 espacios)

¿Cómo puedo configurar Vim para hacer de esta manera:

#selector { 
    property: value; 
} 

(lengüetas 4-espacio)

+2

¿Desea una pestaña de 4 espacios de ancho? Cuatro espacios? ¿O cuatro pestañas de 1 ancho de espacio? Son cosas diferentes, y no estás claro. En cualquier caso, comience con la lectura: ts,: sw, y: expande – abeyer

Respuesta

51

Ampliando la respuesta de Zoul:

Si desea configurar Vim para utilizar configuraciones específicas cuando se edita un tipo de archivo en particular, usted querrá usar autocommands:

autocmd Filetype css setlocal tabstop=4 

Esto hará que sea por lo que las pestañas se muestran como 4 espacios. El ajuste expandtab hará que Vim realmente inserte espacios (el número de ellos es controlado por tabstop) cuando presiona tab; Es posible que desee utilizar softtabstop para hacer que el retroceso funcione correctamente (es decir, reducir la sangría cuando eso es lo que sucedería si se usaran pestañas, en lugar de eliminar siempre un carácter a la vez).

para tomar una decisión plenamente informada en cuanto a la manera de arreglar las cosas, tendrá que leer documentos en Vim tabstop, shiftwidth, softtabstop y expandtab. El bit más interesante se encuentra bajo expandtab (:help 'expandtab):

Hay cuatro formas principales de usar pestañas en Vim:

  1. mantener siempre 'tabstop' a las 8, set 'softtabstop' y ' shiftwidth 'a 4 (o 3 o lo que prefiera) y use' noexpandtab '. Entonces Vim usará una combinación de pestañas y espacios, pero escribir y comportarse como una pestaña aparece cada 4 (o 3) caracteres.

  2. Establezca 'tabstop' y 'shiftwidth' a lo que prefiera y utilice 'expandtab'. De esta manera, siempre insertar espacios. El formateo nunca se perderá cuando se cambie "tabstop".

  3. Establezca 'tabstop' y 'shiftwidth' a su preferencia y utilice | modeline | para establecer estos valores al editar el archivo de nuevo. Solo funciona cuando se usa Vim para editar el archivo.

  4. Configure siempre 'tabstop' y 'shiftwidth' en el mismo valor, y 'noexpandtab'. Esto debería funcionar (para sangrías iniciales solamente) para cualquier configuración de tabulación que las personas usen. Sería bueno tener pestañas después del primer espacio no en blanco insertado como espacios si haces esto. De lo contrario, los comentarios alineados serán incorrectos cuando se cambie "tabstop".

+0

Además, no se preocupe demasiado por la posibilidad de cambiar de parecer más adelante ... vea ': help retab' (revise la variante!). –

82
:set tabstop=4 
:set shiftwidth=4 
:set expandtab 

Esto insertará cuatro espacios en lugar de un carácter de tabulación. Los espacios son un poco más "estables", lo que significa que el texto sangrado con espacios se mostrará igual en el navegador y en cualquier otra aplicación.

+21

Sí, pero las pestañas son semánticas (cada pestaña significa 1 capa de sangría), mientras que los espacios son puramente de presentación. O, en otras palabras, el uso de pestañas permitirá que otras personas que vean tu código se muestren por más amplio que se sientan cómodos, mientras que los espacios no lo permiten. –

+1

Tenga en cuenta que si prefiere ** '>' ** y ** '<' ** para mover el texto a la misma distancia que ** tab **, simplemente puede ': establecer shiftwidth = 0' en su vimrc y olvídate de él para siempre, porque esto le dice a vim que siempre quieres que coincida con 'tabstop'. – SeldomNeedy

3

Si necesita cambiar los tamaños a menudo y no desea enlazar a un tipo de archivo específico que puede tener comandos predefinidos en su archivo .vimrc para cambiar rápidamente las preferencias:

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR> 
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR> 

Esto asigna dos conjuntos diferentes de tamaños a las teclas \ t y \ m. Puedes volver a vincular esto con las teclas que quieras.

33

para hacer el cambio para una sesión, utilice este comando:

:set tabstop=4 

Para hacer el cambio permanente, añadirlo a ~/.vimrc o ~/.vim/vimrc:

set tabstop=4 

Esto afectará a todos los archivos, no se solo css. Para afectar sólo a los archivos CSS:

autocmd Filetype css setlocal tabstop=4 

como se indica en Michał's answer.

+1

si desea que la pestaña funcione como cuatro espacios, es necesario agregar también las otras líneas en la respuesta @Zoul al .vimrc; es decir, agrega 'set shiftwidth = 4' y 'set expandtab' a .vimrc también. – qartal

+2

La pregunta es "¿Cómo cambio el tamaño de las pestañas en Vim?" – Keith

+1

La mejor respuesta aquí +1 –

9

Varias de las respuestas en esta página son soluciones de "uso único" para el problema descrito. Es decir, la próxima vez que abra un documento con vim, volverá a aparecer la configuración de la pestaña anterior.

Si alguien está interesado en cambiar de forma permanente la configuración de la ficha:

  • hallazgo/abrir su .vimrc - instructions here
  • añadir las siguientes líneas: (more info here)

    set tabstop=4 
    set shiftwidth=4 
    set expandtab 
    
  • luego guarde el archivo y pruebe

Cuestiones relacionadas