neosnippet のスニペットファイルを書く上での注意点

今日の勉強会の休み時間に ujihisa さんに教えてもらったので,忘れないうちにメモ.

以前,C 言語の main 関数のスニペットに main の引数 argcargv が常に書いてあるのが気に入らなかった(引数を1度も使わないとコンパイル時に警告を食らう)ので,下記のようなスニペットを作って使っていました.

snippet    main
alias      int_main
abbr       main(){}
    int main()
    {
        ${0}
        return 0;
    }

しかし,これだと問題が1つあって,

int main()
{
    /*ここにカーソル*/
        return 0;
}

のように return のインデントがずれてしまいます. どうやら,スニペット内でインデントが深くなるものを書きたい場合は,その行をハードタブで記述しなければならないようです. これを機に .snip ファイルの空白にはすべてタブを使うようにしてみるとうまくいきました.

after/ftplugin/snippet.vimsetl noexpandtab と書いておくと,スニペットファイル編集時には常にハードタブを使うようになります.