Tengo un autocmd de Vim que elimina los espacios en blanco finales en los archivos antes de escribir. Quiero esto casi el 100% del tiempo, pero hay algunos tipos de archivo que me gustaría que se deshabilitaran. La sabiduría convencional es enumerar los tipos de archivos con los que desea que se ejecute un autocmd en una lista separada por comas, por ejemplo:
autocmd BufWritePre *.rb, *.js, *.pl
Pero en este caso eso sería oneroso.
¿Hay alguna forma de hacer coincidir un patrón autocmd con todos los archivos EXCEPTO los que coinciden con el patrón? No puedo encontrar el equivalente a un NO coincidente en los documentos.
let b:noStripWhitespace
en los archivos en la sección del complemento de tipo de archivo. Fx para deshabilitar la eliminación de espacios en blanco finales para las confirmaciones de git, agregue la línea a~/.vim/ftplugin/gitcommit.vim
.Otra opción de una forma de línea:
Luego, puede hacer algo que le guste para todos los tipos de archivos, excepto los de la lista negra.
fuente
La forma más sencilla sería establecer una variable local para el tipo de archivo en verdadero. Luego configure el comando automático si esa variable es falsa (si está configurada para todo lo demás) o si existe (no es necesario preestablecerla).
prefijos de variable cambiados según el comentario
fuente
Esto funciona para los
Syntax
comandos automáticos, donde el patrón (<match>
) es solo el tipo de archivo. Excluye cualquierrst
archivo:fuente
Nuestro archivo de configuración .vimrc se ejecuta solo una vez al inicio. Entonces, si pones una prueba if en este momento, no funcionará, porque no se está editando ningún archivo Python.
Pero puede usar .vimrc para configurar un comportamiento automático: algo que vim hará cada vez que encuentre una condición especial. La condición puede ser en su caso: "Se está editando un nuevo archivo y su tipo de archivo es 'python'". Ver: h: au
fuente