2012-08-22 16 views
7

¿Hay alguna forma de autoguardar el búfer antes de emitir: make? Uso MacVim y make está ligado a Command-B, lo cual es muy útil, pero parece que no puedo imaginar cómo escribir el buffer antes de una marca. Miré todos los eventos de autocmd y no parecía que nada encajara.Búfer de autoguardado activado: make in vim?

Hay una QuickFixCmdPre que debe ser llamado antes de una marca, pero parece que no puede conseguir que funcione:

~/.vimrc

function! AutoSaveOnMake() 
    if &modified 
     write 
    endif 
endfunction 

autocmd QuickFixCmdPre *.c :call AutoSaveOnMake() 

Respuesta

18

Vim tiene un sistema incorporado en el establecimiento para ello:

:set autowrite 

escribir el contenido del archivo, si se ha modificado, en cada : después,: rebobinar,: última ,: first,: previous,: stop,: suspend,: tag,:!, : make, CTRL-] y CTRL-^comando; y cuando un comando: buffer, CTRL-O, CTRL-I, '{A-Z0-9}, o `{A-Z0-9} lleva uno a otro archivo.

+0

Me gusta eso. Aprende algo nuevo sobre vim todos los días. –

3

En lugar de crear un comando autocmd, ¿por qué no actualizar el mapeo Command-B?

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

Parece que no se puede reasignar Command-B. Si intento: nnoremap : actualizar make por ejemplo, funciona, pero no . – Chris

+0

Asegúrate de poner esto en tu archivo '.gvimrc'. Consulte http://superuser.com/questions/249448/macvim-re-map-command-key-combinations-like-d-f –

+0

Funcionó al combinar el comando de reasignación anterior con el comentario del superusuario. Como dijiste, tiene que ir en '.gvimrc' – Chris

Cuestiones relacionadas