2011-02-01から1ヶ月間の記事一覧

clang_complete 〜高速化への道〜

さて、以前、vim でコード解析を行うプラグインとして、clang_complete を紹介しました。 補完の精度は優秀ですが、普通に使用すると補完に時間がかかってしまい、ストレスが溜まってしまいます。 clang_complete では、高速にコード解析を行う方法がいくつ…

Boost.勉強会#4 簡易版

とりあえず、ざっくりとだけ。 資料とかはあとで追加しまする。 boostjp でのまとめはこちらへ。 Boost.勉強会#4 Video Arichive ★「Boost Fusion Library」(@cpp_akira) Boost Fusion Library View more presentations from faithandbrave Boost.Fusion の…

vim で使われているプロジェクト管理系プラグインの簡易まとめ

プロジェクト管理系のプラグインをいくつか調べてみたのでその簡易まとめです。 簡易なので使い方とかは特に書いてません。 (気が向いたらそのうち書くかも?) 基本的にどのプラグインも導入すると msvc のような FileExplorer が追加されます。 プロジェ…

SingleCompile

SingleCompile とは、vim から離れる事なく、コンパイル→実行を行うためのプラグインです。 まぁ目的や機能は、quickrun と殆ど同じですね。 プラグインはこちらから落としてきます。 https://github.com/vim-scripts/SingleCompile 使い方 コンパイル方法 :…

compile_error.vim

QuickRun で出力されるコンパイルエラーを解析して、unite で出力する source を適当に書いてみました。 [compile_error.vim] " コンパイルエラーのエラーメッセージを解析して、unite で表示する source " " 対応コンパイラ " gcc function! s:gcc_error(so…

file_include.vim

vim

『バッファがインクルードしているファイルの一覧を表示する』 を unite の source で書いてみました。 [file_include.vim] function! unite#sources#file_include#define() return s:source endfunction let s:source = { \ 'name' : 'file_include', \} fu…

neocomplcache でインクルード時にヘッダーファイル名を補完

neocomplcache にはディレクトリからファイル名を補完する機能が付いています。 それを利用して、インクルード時にヘッダーファイルの補完を行えるように neocomplcache 機能を追加して頂きました。 まさに msvc2010 に付いているアレですね。 おお、素晴ら…

Windows で clang のビルドを行う

元サイトはここです。 http://lyuts.net/blog/2010/06/llvm-clang-mingw llvm + clang + MinGW でビルドを行います。 ☆環境 WindowsXP gcc 4.5.0(MinGW) cmake 2.8.3 clang 2.9 ☆ビルド MinGW をインストールします。 http://sourceforge.net/projects/min…

clang_complete

さて、前回も書きましたが OmniCppComplete (ctags)では補完されるコードに限界があります。 例えば、次のようなコードはうまく補完が行えません。 #include <boost/mpl/vector.hpp> namespace mpl = boost::mpl; mpl:: // ←ここでうまく補完されない。 そこで、clang_complete と</boost/mpl/vector.hpp>…

neocomplcache を利用して、OmniCppComplete の補完効率を上げる

さて、前回紹介した OmniCppComplete ですが、そのまま使用するにはいくつか欠点があります。 タグファイルを作成するのがめんどくさい 標準C++ライブラリ等を使用する為には予めタグファイルを作成しておく必要がある include に関係なく、全てのタグファイ…

OmniCppComplete

OmniCppComplete は、ctags のタグファイル使用して、msvc の IntelliSense のようなコードの補完を行います。 ☆セットアップ ここからプラグインを落としてきます。 導入方法は、他のプラグインと同じですが、after/ftplugin を ftplugin にコピーする必要…

指示付きの初期化子 (Designated Initializer)

とは、なんぞやというと、C99で追加された『構造体などの初期化を手助けする機能』らしい。 使い方はこんな感じ。 #include <assert.h> typedef struct { float x, y; } vec; int main(){ vec v = {.y = 2.0f, .x = 1.0f}; assert(v.x == 1.0f); assert(v.y == 2.0f); </assert.h>…