2012-08-22 7 views
7

Gibt es eine Möglichkeit, den Puffer vor der Ausgabe automatisch zu speichern: make? Ich benutze MacVim und make ist an Command-B gebunden, was sehr hilfreich ist, aber ich kann nicht herausfinden, wie man den Puffer vor einem make schreibt. Ich schaute auf alle AutoMD-Ereignisse und nichts schien zu passen.Autosave-Puffer ein: make in vim?

Es gibt eine QuickFixCmdPre, die vor einem Make genannt werden sollen, aber kann nicht scheinen, um es zu bekommen zu arbeiten:

~/.vimrc

function! AutoSaveOnMake() 
    if &modified 
     write 
    endif 
endfunction 

autocmd QuickFixCmdPre *.c :call AutoSaveOnMake() 

Antwort

18

Vim hat einen eingebauten für diese Einstellung:

:set autowrite 

Schreiben Sie den Inhalt der Datei, wenn es geändert wurde, auf jeder : Als nächstes: rewind,: letzte ,: first,: previous,: stop,: aussetzen,: tag,:!, : make, CTRL-] und CTRL-^command; und wenn a: buffer, CTRL-O, CTRL-I, '{A-Z0-9}, oder `{A-Z0-9} Befehl nimmt eine zu einer anderen Datei.

+0

Ich mag das. Lerne jeden Tag etwas Neues über Vim. –

3

Anstatt einen autocmd Befehl zu schaffen, warum nicht einfach das Command-B-Mapping aktualisieren?

nnoremap <d-b> :update<bar>make<cr> 
+0

Kann Command-B nicht neu zuordnen. Wenn ich versuche: nnoremap : update make zum Beispiel, es funktioniert, aber nicht . – Chris

+0

Stellen Sie sicher, dass Sie dies in Ihre '.gvimrc' Datei schreiben. Siehe http://superuser.com/questions/249448/macvim-re-map-command-key-combinations-like-d-f –

+0

Funktioniert, indem der obige Remap-Befehl mit dem Superuser-Kommentar kombiniert wird. Wie du gesagt hast, muss es in '.gvimrc' gehen. – Chris