静音在vim / gvim中执行

时间:2010-03-09 21:39:32

标签: makefile vim

我想使用gvim来启动make并为我的代码进行构建。由于构建过程需要一些时间,我希望它以静默方式执行,然后最终显示错误/构建日志。

我已将此添加到我的.vimrc

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

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

由于我在make的末尾使用cwindow 10,因此会启动quickfix窗口。除此之外,我还想查看构建日志。我能以某种方式做到吗

1 个答案:

答案 0 :(得分:0)

正如我在类似问题中所说:看看我的AsyncCommand插件。将脚本添加到.vim/plugin,您可以使用:AsyncMake:AsyncMake target进行构建。一旦完成,错误将在你的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,以便在必要时跳转到构建日志。