neosnippet のスニペットファイルを書く上での注意点
今日の勉強会の休み時間に ujihisa さんに教えてもらったので,忘れないうちにメモ.
以前,C 言語の main 関数のスニペットに main の引数 argc と argv が常に書いてあるのが気に入らなかった(引数を1度も使わないとコンパイル時に警告を食らう)ので,下記のようなスニペットを作って使っていました.
snippet main
alias int_main
abbr main(){}
int main()
{
${0}
return 0;
}
しかし,これだと問題が1つあって,
int main() { /*ここにカーソル*/ return 0; }
のように return のインデントがずれてしまいます. どうやら,スニペット内でインデントが深くなるものを書きたい場合は,その行をハードタブで記述しなければならないようです. これを機に .snip ファイルの空白にはすべてタブを使うようにしてみるとうまくいきました.
after/ftplugin/snippet.vim に setl noexpandtab と書いておくと,スニペットファイル編集時には常にハードタブを使うようになります.