makefileの実行中にVimが私のディレクトリを変更するのをどのように防ぐのですか?

makefileの実行中にVimが私のディレクトリを変更するのをどのように防ぐのですか?

まあ、私は何が起こっているのか知る前にこの質問を投稿しました。 PythonとC ++コードが混在しているとしましょう。私は、編集ディレクトリのファイルをコンパイルされた場所にコピーする単純なmakefileを使用します(別々のmakefile.txtを使用)。

私のもの:
        cpソース.cソース.h /some/other/dir
        Pushd/一部/その他/ディレクトリ make && su -c "make install";Pushd

最初は、source.cを編集して:makeを実行してから、/some/other/dir/source.h(source.cの代わり)を使用して現在のウィンドウで新しいバッファを開きました。その後、some_python.pyを編集して:makeを実行したときにこれを再試行しましたが、/some/other/dir/source.hが再び開きました。誰でもこれを説明できますか?私が狂っていますか?


皆さん、こんにちは、

Vimを使用すると、このような迷惑な問題が発生しました。ファイルを編集し、「make」と入力すると、同じディレクトリでMakefileを自動的に実行できることが気に入ります。しかし、Vimは実行後に私のディレクトリを変更しています。たとえば、私のソースファイルが/some/dir/source.cで、/some/dir/library/でコンパイルする必要がある場合、私のmakefileは最初にファイルをライブラリフォルダにコピーしてから別のmakefileを実行します。

move_files:
    cp /some/dir/source.c /some/dir/library/
    pushd /some/dir/libary/; make && su -c "make install"; popd

コンパイルが完了した後に問題が発生します。 vim /some/dir/source.c で vim を起動し、 :make を使用すると、コンパイルが完了すると /some/dir/libary/source.c が表示されます。ファイルを元の場所で見たいです。

これは言う?この動作を無効にするにはどうすればよいですか?

ありがとうございます!

修正する 私は以前このような間違いをしたことがあります。 makeが完了すると、コピーされたヘッダファイルを含む新しいバッファが私のウィンドウに開きます(コンパイルする前に.cを編集していたにもかかわらず)。だから/some/dir/source.cを開き、:makeを実行し、/some/dir/library/source.hを使って現在のウィンドウで新しいバッファを開きます。奇妙な?元のバッファはまだ開いていますが、今バックグラウンドにあるので、もう一度切り替える必要があります。

ベストアンサー1

makefile(stdout/stderr) 出力がデフォルト値をトリガするようです。クイック修正モードあなたの精力。

おそらく/some/other/dir/source.h再帰呼び出しによってコンパイルされ、警告が生成され、クイック修正モードがその場所に移動します。または、ファイル名が異なるmakefile出力の一部であり、Quickfixモードでは、コンパイラの警告/エラーメッセージとして誤解されます。

セッションのクイックフィックスモードを無効にする(必要でない場合)、エラー形式を変更するか、makefileを変更して、より少ない出力を生成します。

おすすめ記事