make の実行結果を unite.vim へ出力する
unite-build を使用することで、非同期で make を実行し、その結果を unite.vim へと出力します。
unite.vim へ出力されることで、全体が見やすく、絞りこみなどをスムーズに行うことができます。
また、エラー出力を行う際に『テンプレート引数の畳み込み』が実装されているのでエラーが見やすくなっています。
もちろん、make が成功すれば、実行バイナリも出力されます。
[コマンド]
現在のカレントディレクトリを対象とした make を実行します。
:Unite build
また、『テンプレート引数の折り畳み』を行わない場合は、以下のコマンドです。
:Unite build:!
[makefile]
# MakeFile main : main.cpp g++ -std=gnu++0x -Wall -o main main.cpp
[main.cpp]
#include <vector> #include <map> #include <string> template<typename T> struct hoge{ typedef typename T::type type; }; int func(){ int n = 0; } int main(){ int n = 0; float f = 0; hoge< std::map< std::string, std::map<std::string, std::vector<std::string> > > > h; return 0; }
[quickrun.vim との違い]
unite-build は quickrun.vim とは違い make を行う為のプラグインなので、バイナリの実行結果などは出力されません。
[注意]
横幅が足りない場合、エラー内容は幅にあわせて省略されます。
その場合は、エラーを選択して
[覚書]
Twitter でつぶやいていた妄想とか要望とか。
- ソースのバッファから次のエラーへ移動
- ソースのエラー箇所がハイライト
- ファイル、関数、クラスごとにエラー箇所をインデント
- ソースのエラーへ移動したら unite.vim も該当箇所へ移動
- エラーと警告のハイライトを別に設定
- 例)
- エラー→赤
- 警告→青
- bjam の対応
- テンプレート引数の畳み込みの要望とか(?)
現状のまとめとしてはこんな感じでしょうか。
まだ作られたばかりなので要望などあれば作者の @ShougoMatsu さんに提案すればいいと思います(丸投げ。
特にテンプレート引数の折り畳みは、わたしもまだ試しきれていないので、改善の余地があるかも知れません。
個人的には quickrun.vim の outputter/unite みたいなのがあると嬉しいですね。