Makefile 在vim/gvim中执行静音make

Makefile 在vim/gvim中执行静音make,makefile,vim,Makefile,Vim,我想使用gvim启动make并为我的代码进行构建。由于构建过程需要一些时间,我希望它能被静默地执行,然后在最后向我显示错误/构建日志 我已将此添加到我的.vimrc中 :command -nargs=* Make silent make <args> | cwindow 10 map <c-b> <c-o>:Make<cr> :命令-nargs=*makesilentmake | cwindow 10 地图:制造 所以当我按下Ctrl-b键时

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

我已将此添加到我的.vimrc中

:command -nargs=* Make silent make <args>  | cwindow 10
map <c-b> <c-o>:Make<cr>
:命令-nargs=*makesilentmake | cwindow 10
地图:制造
所以当我按下Ctrl-b键时,它开始构建。但当我这么做的时候,我的gvim挂起了,我一时什么也做不了。有没有办法完成我想做的事情


由于我在make的末尾使用了
cwindow 10
,它将启动quickfix窗口。除此之外,我还想查看构建日志。我能不能像我在类似问题中所说的那样:看看我的插件。将脚本添加到
.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
,必要时跳转到生成日志。

另请参见此