2017-02-18 3 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> 

このコードスニペットをコピーしますそれは完全にOKであるかどうか非常に確かではありません。 vim、Pressを再入力すると、左下のコマンドウィンドウに ":Su"と表示され、何も起こりません。

(1)何が起こったのか、Myfunctionの文法上の問題は何ですか? (2) "command-bang"行は必要ですか?ここでは0の意味は何ですか?

ありがとうございました。

+0

' 0 'は'のいずれかを意味します!0'ましたバングの存在をチェックする「1」または「0」である(すなわち、「Umake」または「Umake!」) –

答えて

1

代わり:let &makeprg = 'cd "compilation/dir" && make $*'設定しsystem()

でコンパイルする必要はありません。その後、:make target -j 12。再び

、ビルドツール・ラッパープラグインはすでに(複数のコンパイルディレクトリで)外のソースツリーのコンパイルを処理し、検出、バックグラウンドコンパイルをターゲット...

関連する問題