2010-03-09 67 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以在必要時跳轉到構建日誌。