2017-02-17 7 views
0

私のシナリオは次のとおりです。私はVIM:オープンされたバッファのファイルパス/ディレクトリを取得する方法は?

vim 1.cpp src/2.cpp root/src/3.cpp 

時には例えば、いくつかの.cppファイルを開くためのvimを使用しています、私はので、私は

"rm root/src/3.o" 
に別のウィンドウを使用する必要が3.cppを再構築したいです

とvimの中には、タイプ

":make" 

NPはうまくいきます。しかし、私は.vimrc関数/コマンドを探しています:

私はバッファに切り替えます。 "root/src/3.cpp"と入力し、このコマンドを押すと、vimは "root/src"のディレクトリとファイル名の末尾に "3"を検出し、自動的に "rm root/src/"

この場合、私は気軽に任意のバッファに切り替えることができ、この非常にファイルのビルドを再トリガすることができます。

など我々はsconsのようないくつかの異なるメイクユーティリティを使用するので、私は「きれいにする」などのツールのコマンドをgmakeをマッピングしたくない注意、cmakeの、

それでは、どのように.vimrcでこの関数/コマンドを書くには?ありがとう。

+1

質問を読むために大胆で大きなフォントサイズで書く必要はないと思います。あなたが私の目の中で叫んでいるようなものです。 – bitcell

答えて

3

:call system('rm '.expand('%:p:r'))である。

しかし、私はあなたがそれをする必要があることに非常に驚いています。コンパイルチェーンを担当するツールは通常、依存関係(これまでのツール)を理解しているので、マッピングを必要とするオブジェクトファイルを削除する必要はありません。

PS:完全にpossible (but I need to update the doc)で、CMakeをサポートするか、vimからソース外コンパイルをサポートします。しかし、実際には、ソース外のコンパイルでは、手動でファイルを削除する必要はありません。:make cleanの場合は:makeが既に動作しています。

2

次の方法でroot/src/3.cppバッファからroot/src/3を得ることができます。そして、あなたが最後に.oを連結し、コマンドを構築するのは自由です

expand('%:p:r') 

。 @Kentが述べたように、またはさらには:!rm %:p:rとしてさえも、

関連する問題