¿Cómo hago para que Vim se adapte al estilo de sangría actual del archivo que estoy editando?


39

Trabajo en una variedad de proyectos de JavaScript. En la mayoría de estos proyectos, la sangría de los archivos JavaScript es de 2 espacios, por lo que he configurado mi ancho de sangría predeterminado para eso. Sin embargo, se convierte en 1 o 4 en algunos otros proyectos.

¿Hay alguna manera de pedirle a Vim que cambie el estilo de sangría en función del estilo ya utilizado en el archivo actual?


¿Por qué no agrega tales configuraciones en .vimrc para un tipo de archivo en particular? :au BufEnter *.js :set shiftwidth=2. Esto funciona para todos los proyectos,
SibiCoder

1
@SibiCoder: Porque incluso el mismo tipo de archivo puede tener diferentes estilos de sangría en diferentes proyectos. (por ejemplo: proyectos que no pertenecen a la misma empresa)
thameera

*.*Es solo un patrón. También puede usar el nombre de archivo o la ruta. O bien, puede usar un comando automático similar al que le di para cada archivo. Puede indicarle al comando automático que tome el ancho de tabulación del archivo actual y lo coloque en la ruta de este archivo. Es muy facil.
SibiCoder

Respuestas:


28

Para agregar a la respuesta de @Undo arriba. Tim Pope también tiene un complemento que intenta hacer lo mismo en tpope / vim-sleuth


55
Sleuth parece funcionar un poco mejor que detectindent, en mi experiencia, y también intentará determinar la configuración de sangría adecuada para los nuevos archivos mirando otros archivos cercanos en el sistema de archivos.
jamessan

@jamessan no lo sabía, es bueno saberlo.
Dhruva Sagar

2
Lea nuestra política sobre respuestas de recomendación de complementos y agregue algunos detalles sobre cómo usar exactamente su complemento recomendado para resolver el problema.
200_success

15

No lo he usado, pero ciaranm / detectindent podría ser lo que estás buscando. Parece estar activo (actualizado por última vez hace 25 días) y parece que hace lo que desea:

Un complemento Vim, para detectar automáticamente las configuraciones de sangría. Este complemento agrega un comando: DetectIndent, que intenta establecer de manera inteligente las opciones 'ancho de banda', 'expandir pestaña' y 'tabulación' en función de la configuración existente en uso en el archivo activo.


Este complemento ya no está en desarrollo activo. (La última actualización fue hace 3 años .)
Mateen Ulhaq
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.