2010-03-09 32 views
1

我想使用gvim启动make并为我的代码执行构建。由于构建过程需要一段时间,我希望它能够静默执行,然后最终向我显示错误/构建日志。在vim/gvim中静默执行

我已经加入这个我的.vimrc

:command -nargs=* Make silent make <args> | cwindow 10 
map <c-b> <c-o>:Make<cr> 

所以,当我按下Ctrl-B它开始建设。但是当我这样做时,我的gvim挂起,我无法做任何事情。有没有办法完成我想要做的事情。

由于我在make结束时使用了cwindow 10,它启动了quickfix窗口。除此之外,我还希望看到构建日志。我可以以某种方式做到这一点

+5

请参阅http://stackoverflow.com/questions/666453/running-make-from-gvim-in-background – 2010-03-09 21:42:49

+0

也是这个http://stackoverflow.com/questions/1089028/is-it-possible-to-呼叫使功能于VIM功能于Linux的不-显示,该壳 – 2010-03-17 18:07:56

回答

0

正如我在类似的问题中说:看看我的AsyncCommand插件。将脚本添加到您的.vim/plugin,您可以使用:AsyncMake:AsyncMake target构建。 make完成后,将在quickfix中打开错误。


对于日志文件,您可以扩展AsyncMake以打开构建日志。你安装asynccommand.vim后添加到您的vimrc:

function! AsyncMakeWithLog(target) 
    let make_cmd = &makeprg ." ". a:target 
    let vim_func = "OnCompleteLoadErrorAndLog" 
    call AsyncCommand(make_cmd, vim_func) 
endfunction 
" Load the output as an error file and load the full build log 
function! OnCompleteLoadErrorAndLog(temp_file_name) 
    call OnCompleteLoadErrorFile(a:temp_file_name) 
    call OnCompleteLoadFile(a:temp_file_name) 
endfunction 

然而,日志文件和错误窗口都会有很多相同的文字,所以你并不总是需要两者。如果您的构建工具已经将其构建日志写入磁盘,那么我建议您的构建输出包含构建日志的完整路径。这样,您可以在错误窗口的路径上键入gf以在必要时跳转到构建日志。