8

有没有办法在发出 :make 之前自动保存缓冲区?我使用 MacVim 并且 make 绑定到 Command-B,这非常有用,但我似乎无法弄清楚如何在 make 之前编写缓冲区。我查看了所有的 autocmd 事件,似乎没有什么合适的。

有一个 QuickFixCmdPre 应该在 make 之前调用,但似乎无法让它工作:

~/.vimrc

function! AutoSaveOnMake ()
    if &modified
        write
    endif
endfunction

autocmd QuickFixCmdPre *.c :call AutoSaveOnMake()  
4

2 回答 2

19

Vim 有一个内置的设置:

:set autowrite

在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL 上写入文件的内容(如果已修改) -^ 命令;当 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令将一个文件传送到另一个文件时。

于 2012-08-23T06:12:12.910 回答
3

与其创建autocmd命令,不如直接更新 Command-B 映射?

nnoremap <d-b> :update<bar>make<cr>
于 2012-08-22T17:02:43.777 回答