vimに別のターミナルウィンドウで "make"コマンドを実行させる方法はありますか?

vimに別のターミナルウィンドウで

私は主にC / C ++プログラミングのためのエディタとしてvimを使います。残念ながら、私はビルドプロセスがどのように機能するかはあまり満足していません。:makemakeプロセスを実行するために入力(またはキーにマッピング)できることがわかります。ただし、このコマンドは適切な強調表示なしで同じターミナルウィンドウでビルドプロセスを実行するため、これはうまくいきません。したがって、私は通常、2番目のモニタの別のウィンドウでmakeコマンドを実行して、メインのVimウィンドウでソースコードをスクロールしながら、1つのウィンドウでコンパイラが表示するビルドエラーを正しく強調表示して表示できます。フォーカスを別のウィンドウに変更してmakeコマンドを入力する必要があるため、これは非常に面倒な作業でもあります。

今私の質問は次のとおりです。フォーカスを変更せずにvimに別のウィンドウでmakeコマンドを実行させることはできますか?これにより、「別ウィンドウでビルド」コマンドをvimのキーにマップし、1回のキーを押すだけですべての操作を実行できます。

私のシステムは、i3をDWMとして使用するManjaro Linuxです。

(この記事をstackoverflowに投稿するのかここに投稿するのかわかりません。間違ったフォーラムであれば許してください。)

ベストアンサー1

名前付きパイプを使用してください。

  1. 端末でVimを使用してソースコードを開きます。
  2. 出力したい2番目の端末を開き、を使用してmake新しいパイプを作成しますmkfifo mypipe
  3. 2番目の端末では、watch --color -n 0.3 'cat mypipe'常にNamed Pipeを読むために実行してください。
  4. 最初の端末で:!script -q -c "make" mypipe > /dev/nullソースコードへの変更を保存し、Vimで実行します。

script私達は使用しなければならないカラー出力を維持するようにプログラムをだます。。バージョンを確認してくださいwatch サポートカラー

おすすめ記事