2017-02-18 70 views
0

我希望,當我一個目錄下編輯一些源文件,記者會觸發cmake並讓身材,象下面這樣:VIM用戶定義的函數映射不起作用

command -bang -nargs=? Umake call Myfunction(<bang>0) 
function! Myfunction(forced) 
    lcd %:p:h 
    call system('cmake && make') 
endfunction 
nmap <F5> :Umake<cr> 

這段代碼被複制從互聯網,做了一些修改,不太確定,如果它完全沒問題。重新進入vim後,按下,左下角的命令窗口顯示「:Su」,什麼也沒有發生。

(1)爲什麼沒有發生,Myfunction中的任何語法問題? (2)命令行是否是必需的?這裏0的含義是什麼?

謝謝。

+0

' 0'意味着要麼'!0'這是'1'或'0',它檢查爆炸的存在(即'Umake'或'Umake!') –

回答

1

你不想system()

設置,而不是:let &makeprg = 'cd "compilation/dir" && make $*'編譯。然後:make target -j 12

再次,構建工具,包裝插件已經處理了亂源代碼樹編譯(有多個編譯目錄),目標探測,後臺編譯...