Frage

Ich brauche die logischen und von zwei autocmd Ereignisse in vim zu tun. Grundsätzlich hat der Befehl auf einem InsertLeave laufen, wenn der Dateityp tex ist. Es scheint, wie dies sollte (in einem .vimrc) arbeiten:

autocmd FileType tex :autocmd InsertLeave :w

Aber es funktioniert nicht. Die verschachtelte Option scheint nicht zu helfen, obwohl das Handbuch gibt es soll.

Es ist einfach zu tun, ein logischer OR:

autocmd BufEnter,BufLeave ...

es darf nicht zu schwer sein, zu tun, eine logische UND.

War es hilfreich?

Lösung

Ich habe eine Korrektur Antwort auf @Eevee: automatische Befehl Arbeit für einen Puffer nur zu machen, sollten Sie verwenden

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

finden Sie unter `: h. Autocmd-buflocal

Andere Tipps

InsertLeave muss noch einen Parameter.

Dies funktioniert für mich:

autocmd FileType tex :autocmd InsertLeave * :w

Beachten Sie, dass dieses Verhalten wird bleiben, wenn Sie später eine nicht-tex Datei in dem gleichen Puffer bearbeiten. Ich bin mir nicht sicher, ob es eine einfache Möglichkeit, es zu entfernen, wenn etwas Bearbeitung und eine bestimmte Art von Datei.

Sie können die Muster nach Wahl des autocmnd verwenden.

autocmd InsertLeave *.tex w
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top