Pregunta

Necesito hacer los dos eventos autocmd lógicas y de las palabras en vim. Básicamente, el comando debe ejecutarse en un InsertLeave cuando el tipo de archivo es tex. Parece que esto debería funcionar (en un .vimrc):

autocmd FileType tex :autocmd InsertLeave :w

Pero no lo hace. La opción anidada no parece ayudar o bien, a pesar de que el manual indica que debería.

Su fácil de hacer un lógico-O:

autocmd BufEnter,BufLeave ...

no debe ser demasiado difícil de hacer un lógico-Y.

¿Fue útil?

Solución

Tengo una corrección a @Eevee respuesta: para hacer el trabajo AutoCommand para una sola memoria intermedia, se debe utilizar

augroup TexAutoWrite
    autocmd FileType tex :autocmd! TexAutoWrite InsertLeave <buffer> :update
augroup END

, véase `:. H autocmd-buflocal

Otros consejos

InsertLeave todavía necesita un parámetro.

Esto funciona para mí:

autocmd FileType tex :autocmd InsertLeave * :w

Tenga en cuenta que este comportamiento se mantendrá si posteriormente se edita un archivo que no tex en el mismo tampón. No estoy seguro de si hay una forma sencilla de eliminarlo al editar cualquier cosa y un determinado tipo de archivo.

Puede utilizar la opción de patrón de la autocmnd.

autocmd InsertLeave *.tex w
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top