neocomplcache のスニペットには Vim script の式を使って展開する機能があります.
- c.snip
snippet include_guard alias inc_guard prev_word '^' abbr #if !defined HOGE #define HOGE #endif #if !defined `toupper( substitute( expand("%"), "\\.", "_", "g" ) )."_INCLUDED__"` #define `toupper( substitute( expand("%"), "\\.", "_", "g" ) )."_INCLUDED__"` ${0} #endif // `toupper( substitute( expand("%"), "\\.", "_", "g" ) )."_INCLUDED__"`
このファイルを g:neocomplcache_snippets_dir で指定したディレクトリ下に置くと,inc_guard または include_guard というスニペットが neocomplcache の補完候補に現れます.
これはインクルードガード用のプリプロセッサマクロを生成するものです.
hoge.hpp というファイルでこのスニペットを選択すると,
#if !defined HOGE_HPP_INCLUDED__ #define HOGE_HPP_INCLUDED__ #endif // HOGE_HPP_INCLUDED__
というふうに展開されます.
候補名やマクロ変数名が気に入らない場合は適宜変更して下さい.
ちなみに,neocomplcache のスニペット機能は
Shougo/neocomplcache-snippets-complete · GitHub
からインストールできます.