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 みたいなのがあると嬉しいですね。