vimrc of C++er.
C++er 用のサンプル vimrc です。
いくつかのプラグインの設定などが記述されています。
単体で使用することも可能ですし、改変して使用したり、一部を切り取って使用するなり好きにして下さい。
- C++er 向けの参考になる/汎用的な vimrc の提示が目的
- あくまでも C++er 向けの vimrc を目指しているので C++ に直接関係のない設定は記述しない方向
- この vimrc を元に自分で設定などを追加して使用してもらう
- ただし、単体でも使用可能
- なるべく余計なコードや設定は行わず簡素な vimrc を目指す
- 需要があるのであればそのその限りではない
- プラグインの管理は neobundle.vim を使用
- git
- vimproc.vim
- Windows 環境であれば自前でビルドする必要がある
- Windows 以外であれば neobundle.vim が自動的にビルドを行う
- Kaoriya 版 Vim であれば vimproc.vim が同梱されているので自前で用意する必要はない
- 1.この vimrc を読み込む、または自分の vimrc に組み込む
- 2.初回起動時に neobundle.vim がインストールされていなければインストールが行われる
- 2.a.neobundle.vim がインストールされるディレクトリは $VIM_NEOBUNDLE_PLUGIN_DIR
- 2.b.neobundle.vim のインストール後に Vim を再起動する必要がある
- 3.インストールされていないプラグインのインストールが行われる
- 3.a.プラグインがインストールされるディレクトリは $VIM_NEOBUNDLE_PLUGIN_DIR
- 3.b.プラグインのインストールには時間がかかるので注意
- 4.プラグインのインストールが終了したら利用する事が可能
- 5.以降、プラグインを更新する場合は
:NeoBundleUpdate
を使用する
環境変数 |
説明 |
デフォルト値 |
$VIM_NEOBUNDLE_PLUGIN_DIR |
neobundle.vim のインストールディレクトリ |
"~/.vim/bundle/" |
$VIM_CPP_STDLIB |
C++ の標準ライブラリへのパス |
"" |
$VIM_CPP_INCLUDE_DIR |
C++ のインクルードディレクトリ |
"" |
1 が設定されている場合は有効になります。
これは本 vimrc が読み込まれる前に設定しておく必要があります。
関数名 |
説明 |
CppVimrcOnFileType_cpp() |
filetype=cpp 時に呼ばれる |
CppVimrcOnPrePlugin() |
プラグインの設定前に呼ばれる |
CppVimrcOnFinish() |
読み込みが終了して一番最後に呼ばれる |
" neobundle.vim がインストールするプラグインへのパス
" neobundle.vim もこのディレクトリにインストールが行われる
" default : ""
let $VIM_NEOBUNDLE_PLUGIN_DIR = "~/.vim/bundle"
" C++ の標準ライブラリへのパス
" $VIM_CPP_INCLUDE_DIR とは別に設定しておく
" default : ""
let $VIM_CPP_STDLIB = "C:/MinGW/lib/gcc/mingw32/4.6.2/include/c++"
" C++ のインクルードディレクトリ
" 複数の場合は , 区切りで設定
" default : ""
let $VIM_CPP_INCLUDE_DIR = "D:/home/cpp/boost/boost_1_55_0,D:/home/cpp/Sprout"
" filetype=cpp の設定はこの関数内で行う
" set ではなくて setlocal を使用する
function! CppVimrcOnFileType_cpp()
"タブ文字の長さ
setlocal tabstop=4
setlocal shiftwidth=4
" 空白文字ではなくてタブ文字を使用する
setlocal noexpandtab
" 最後に定義された include 箇所へ移動してを挿入モードへ
nnoremap <buffer><silent> <Space>ii :execute "?".&include<CR> :noh<CR> o
endfunction
" 一番最後に呼ばれる関数
" 設定などを上書きしたい場合に使用する
function! FinishCppVimrc()
NeoBundleDisable "neocomplete.vim"
endfunction
" 以降に本 vimrc の設定を記述する
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 自動的に neobundle.vim の
git clone
を行う
- 自動補完
- バッファ内のワード
- シンタックス
- ファイル名
- Wandbox でコードの実行
- wandbox.vim
- アウトラインの出力
:Unite outline
- バッファのコードを実行
:QuickRun
or <leader>r
- quickrun 時に実行が成功すればバッファへ、失敗すれば quickfix へと結果を出力する
- その為、出力はバッファリングされます
- quickrun の出力バッファのウィンドウは
botright
で開く
- quickfix のエラー箇所のハイライト
- 保存時にシンタックスチェックを行う
'matchpairs'
に <> を追加
- BOOST_PP_ から始まる単語のハイライト
- marching.vim を使用した高度なコード補完
- include 時のヘッダーファイル名の補完
- quickrun 時に 'path' のディレクトリをインクルードオプションとして設定
モード |
キー |
説明 |
nv |
<Leader>c |
コメントアウトのトグル |
nv |
<Leader>C |
コメントアウトを解除 |
nx |
<Space>m |
カーソル下のワードのハイライトのトグル |
nx |
<Space>M |
<Space>m で設定した全てのハイライトの解除 |
n |
<Space>ns |
スニペットファイルの編集 |
is |
|
<Tab> |
![caw](https://camo.githubusercontent.com/57a967842545bf1093e86b74689a7a3d5d2dde078696fc020e1584a93cc91a7b/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313738303830302f30343161653130322d363838332d313165332d393236662d3430303763613862393163662e676966)
![unite_outline](https://camo.githubusercontent.com/19208199a13f1351a2f128bc4a6880b5696e510770c9d18508d1ec2f4f1763f1/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313737393834352f62383839626138342d363835392d313165332d396132332d3531656564623137313133312e504e47)
![file_include](https://camo.githubusercontent.com/abca967865eaae79f85589ea11a7455494578bc44657f2ea6fff292287eaed28/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313737393935302f39373032396233302d363835632d313165332d386265362d6662316266383838396334662e504e47)
![file](https://camo.githubusercontent.com/d9ff0d9b22dde4ed62269adab29db5e2fe44f5d9313dcc44d2fb6a5274a6e364/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313737393839362f64616437303038632d363835612d313165332d386666392d3934373166346337373966642e706e67)
![syntax](https://camo.githubusercontent.com/1149c6e988b53a6085cb4f8d8096c6a7dd7a58e133ebc915428dc7853969aa20/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313737393930352f30366163333033382d363835622d313165332d393164302d3063383564623534643131632e706e67)
![file_include](https://camo.githubusercontent.com/ac782814d047267fe3fbf624443c62c95d1ee3922412098d113f7d92b3f63164/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313738303535372f64313832323131612d363837382d313165332d383861382d3062643863356666373235322e676966)
![marching](https://camo.githubusercontent.com/5a17e7647dfaf2e2283f343273b2da20b6222ae8afcdf4b5c822ad413e396da1/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313737393933352f32326335323731612d363835632d313165332d393766312d3265396536666238343732302e504e47)
![neosnippet](https://camo.githubusercontent.com/1f027521187ab93f8608328a2b7df9b81d90ce8fdab239398562dc7bb2bd46ea/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313738303038382f36343831366461322d363836322d313165332d383538322d3162306162323338663032662e676966)
![success](https://camo.githubusercontent.com/edb21a2b5aefa37976cc4141b69abfec74aa1d1152db4bc26f2218844c175ea0/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313738303236342f37323962343739632d363836622d313165332d396138632d3066303935633036643966622e504e47)
![error](https://camo.githubusercontent.com/2685cd3312392161d446c024feabb184a63071970684a9a6895758905c41f7d0/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f3231343438382f313738303237302f62313031303033302d363836622d313165332d393337612d3362363632613665363535302e504e47)
NYSL
NYSL English