2016-08-23 3 views

Antwort

1

aktualisieren:

Die OP festgestellt in den Kommentaren, dass diese Kombination genau tat, was gewünscht wurde (den Befehl nur auf :wq).

:autocmd BufWritePost * :autocmd VimLeave * :!cp % /somewhere/else 

Ursprüngliche Antwort:

können Sie haken Sie das BufWritePost Ereignis. Dies wird den Befehl auf alle schreiben, nicht nur, wenn Sie :wq verwenden, um die Datei zu verlassen.

:autocmd BufWritePost * :!cp % /somewhere/else 

Ich nehme an, Sie könnten versuchen, das BufDelete Ereignis Einhaken (vor einem Puffer aus dem Pufferliste zu löschen), aber das scheint, wie es problematisch wäre, als Puffer für mehr als Datei-Editoren verwendet werden. Sie werden auch für Dinge wie QuickLists, die Hilfe-Viewer, etc. verwendet.

Es gibt einige Ereignisse, die stattfinden, wenn Sie aufhören, was eine Option sein könnte.

QuitPre  when using :quit, before deciding whether to quit 
VimLeavePre before exiting Vim, before writing the viminfo file 
VimLeave  before exiting Vim, after writing the viminfo file 

können Sie die vollständige Liste siehe :help autocmd-events verwenden.

Beachten Sie auch, dass Sie einschränken können, was dem Ereignis entspricht. Zum Beispiel, wenn Sie nur diese für HTML-Dateien und CSS-Dateien passieren soll, könnten Sie verwenden:

:autocmd QuitPre *.html,*.css :!cp % /somewhere/else 

Ich vermute, Sie experimentieren müssen und sehen, was für Sie arbeitet.

+0

Hey, Dan. Es wird auch mit ': w' funktionieren und ich will das nicht, weil es bei jedem Speichern der Datei ausgeführt wird. Ich möchte, dass ein Event nur mit ': wq' funktioniert. Kannst du etwas vorschlagen? –

+0

Hey, vielen Dank. Ich hakte 'BufWritePost' mit' VimLeave'. ': autocmd BufWritePost *: autocmd VimLeave *:! cp%/somewhere/else' –

+0

Cool, ich werde das in die Antwort setzen, da es genau das tat, was du warst –

0

Es sieht so aus, als müssten Sie das Schreiben einer Datei automatisch an einen anderen Ort kaskadieren. My DuplicateWrite plugin bietet komfortable Befehle zum Einrichten solcher. (Die Plugin-Seite enthält Links zu alternativen Plugins.)

:DuplicateWrite /somewhere/else 
+0

Danke, das wird sich als nützlich erweisen. –

Verwandte Themen