1

私は新しいvimユーザーなので、自分のニーズに合わせてvimを変更しようとしています。

project/main.cpp と project/build があるとしましょう。「make -j5 install」を実行すると、プロジェクト/ビルド内のどこにプロジェクトが正しくビルドおよびインストールされますか。しかし、vimから内部でそれをやろうとするとうまくいきません。これが私が使用するコードです....

map <F5> :call BuildGitRepo()<cr>

function! BuildGitRepo() 
    :cd %:p:h
    let currentFileDir = :pw
    :cd currentFileDir
    :cd "build"
    :!make -j5 install
endfunction
4

1 に答える 1

0

vimrcファイルのVimスクリプトは、Vimウィンドウとは少し機能が異なります。で始まるコマンド:はvimスクリプトでネイティブになります。つまり、コロンは必要ありません。また、ローカル変数の使用は少し異なります。execを使用する必要があります。

:最後に、バッファリダイレクトなしでコマンドの出力をキャプチャすることはできませんが、getcwd()関数を使用して現在の作業ディレクトリを取得できます。しかし、現在のファイルのディレクトリに2回アクセスしているように見えるcdので、少し簡単にしました。

これがvimrcファイルで動作するはずの関数のバージョンです:

map <F5> :call BuildGitRepo()<cr>

function! BuildGitRepo() 
    exec "cd " . expand("%:p:h") ."/build"
    !make -j5 install
endfunction
于 2012-11-22T12:57:41.333 に答える