【问题标题】:Autosave buffer on :make in vim?在vim中自动保存缓冲区:make?
【发布时间】:2012-08-23 14:12:12
【问题描述】:

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

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

~/.vimrc

function! AutoSaveOnMake ()
    if &modified
        write
    endif
endfunction

autocmd QuickFixCmdPre *.c :call AutoSaveOnMake()  

【问题讨论】:

    标签: vim macvim


    【解决方案1】:

    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} 命令将一个文件转移到另一个文件。

    【讨论】:

    • 我喜欢这样。每天学习有关 vim 的新知识。
    【解决方案2】:

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

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

    【讨论】:

    • 似乎无法重新映射 Command-B。如果我尝试: nnoremap :updatemake 例如,它可以工作,但不是 .
    • 确保将其放入 .gvimrc 文件中。见superuser.com/questions/249448/…
    • 通过将上述重映射命令与超级用户注释相结合,使其工作。正如你所说,它必须进入.gvimrc
    猜你喜欢
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多