linea - Configuración de las preferencias de espacio en blanco de Vim por tipo de archivo
vim inicio (5)
En mi trabajo, estoy obligado a seguir el estilo de la casa para la sangría, que es el siguiente:
- 2 espacios al codificar html y ruby
- pestañas cuando se codifica javascript, con tabwidth = 4 recomendado
¿Cuál es la mejor manera de especificar diferentes preferencias de espacios en blanco por tipo de archivo?
+1 a la respuesta de Peter, pero Vim proporciona otra solución también. Si quieres hacer algo más complicado que un único setlocal
, como configurar un montón de opciones, comandos y mapeos a la vez, entonces la característica del complemento de tipo de archivo de vim viene al rescate.
Necesita tener el filetype plugin on
o filetype plugin indent on
en su .vimrc
, y luego crear un plugin para, por ejemplo, ruby puede crear ~/.vim/ftplugin/ruby.vim
. Técnicamente, puede usar los comandos que desee aquí, para ejecutarlos cuando se carga un archivo Ruby, pero los recomendados incluyen setlocal
, map <buffer>
, command -buffer
y funciones de definición. Hay mucha más información en la Guía del usuario; si está muy familiarizado con el scripting vim, vaya a :help 41.11
; de lo contrario, lea :help usr_40
y :help usr_41
.
La respuesta de Peter es bastante simple, pero desafortunadamente las opciones no son correctas. En su lugar, debe usar las siguientes opciones:
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab
También tenga en cuenta:
- Puede hacer que vim muestre caracteres de pestañas usando
:set list
. - Una vez que tenga las opciones de tabulación / espacio configuradas correctamente, puede hacer que vim repare el archivo (reemplace espacios con pestañas o viceversa) usando
:retab!
mando.
Para insertar caracteres de espacio cada vez que se presiona la tecla de tabulación, configure la opción ''expandtab'':
:set expandtab
El siguiente paso es controlar el número de caracteres de espacio que se insertarán cuando se presione la tecla de tabulación, establezca la opción ''tabstop''. Por ejemplo, para insertar 2 espacios para una pestaña, use:
:set tabstop=2
También hay una buena secuencia de comandos vim: DetectIndent que intenta detectar la sangría de un archivo que se abre. Es muy útil si trabajas con muchos archivos con diferentes estilos de codificación.
Uso un autocomando en mi .vimrc :
:autocmd BufReadPost * :DetectIndent
hay muchas formas, pero aquí hay una manera simple y fácil de entender. agrega estas líneas a tu ~/.vimrc
:
autocmd Filetype html setlocal ts=2 sts=2 sw=2
autocmd Filetype ruby setlocal ts=2 sts=2 sw=2
autocmd Filetype javascript setlocal ts=4 sts=4 sw=4