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> |
- neobundle.vim - プラグイン管理プラグイン
- cpp-vim - C++ のシンタックス
- wandbox-vim - Wandbox でコードの実行
- marching.vim - Clang を使用したコード補完
- quickrun.vim - コードの実行
- vimproc.vim - 非同期で外部コマンドを実行
- vim-hier - quickfix の該当箇所をハイライト
- neocomplete.vim - コード補完
- neosnippet.vim - スニペット
- neosnippet-snippets - スニペット
- unite.vim - unite.vim
- unite-outline - アウトラインの表示
- caw.vim - コメントアウト
- vim-quickhl - カーソル下のワードのハイライト