Pregunta ¿Cómo cambio el tamaño de las pestañas en Vim?


Cada vez que agrego un selector en CSS y presiono Enter para definir las propiedades termina así:

#selector {
        property: value;
}

(Pestañas de 8 espacios)

¿Cómo puedo configurar Vim para que sea así?

#selector {
    property: value;
}

(Pestañas de 4 espacios)


74
2018-01-13 05:21


origen


Respuestas:


Ampliando la respuesta de zoul:

Si desea configurar Vim para usar configuraciones específicas al editar un tipo de archivo particular, querrá usar autocommands:

autocmd Filetype css setlocal tabstop=4

Esto hará que las pestañas se muestren como 4 espacios. Ajuste expandtab hará que Vim realmente inserte espacios (el número de ellos está 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 completamente informada sobre cómo configurar las cosas, deberá leer los documentos de Vim en tabstop, shiftwidth, softtabstop y expandtab. El bit más interesante se encuentra en expandtab (:help 'expandtab)

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

  1. Mantenga siempre 'tabstop' en 8, establezca 'softtabstop' y 'shiftwidth' en 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. Establece 'tabstop' y 'shiftwidth' a lo que prefieras y utiliza 'expandtab'. De esta manera, siempre insertar espacios. El formateo nunca se perderá cuando se cambie "tabstop".

  3. Ajuste 'tabstop' y 'shiftwidth' a lo que prefiera y use | 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' con 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".


59
2018-01-13 06:03



: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.


103
2018-01-13 05:35



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

:set tabstop=4

Para hacer que el cambio sea permanente, agréguelo a ~/.vimrc o ~/.vim/vimrc:

set tabstop=4

Esto afectará a todos los archivos, no solo a css. Para afectar solo archivos css:

autocmd Filetype css setlocal tabstop=4

como se indica en La respuesta de Michał.


50
2017-10-12 20:49



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, la configuración de pestañas anterior volverá.

Si alguien está interesado en cambiar permanentemente la configuración de las pestañas:


11
2017-07-28 22:54



Si necesita cambiar los tamaños a menudo y no desea vincular esto a un tipo de archivo específico, 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.


3
2017-12-09 02:20