毎回忘れるので備忘録です。
環境
Arch Linuxでやりました。
Linuxなら同じだと思います。
Vimのバージョンは8.2です。
ダウンロード
gitからダウンロードします。表題の通り、サードパーティ製のパッケージマネージャは使わず、Vim8で使える標準のパッケージ機能を使います。(Vim 8.0 Advent Calendar 6 日目 パッケージを参考にしました。)
mkdir -p ~/.vim/pack/packs/start
cd ~/.vim/pack/packs/start
git clone https://github.com/tomtom/tlib_vim.git
git clone https://github.com/MarcWeber/vim-addon-mw-utils.git
git clone https://github.com/garbas/vim-snipmate.git
スニペットファイル作成
スニペットファイルを作成します。拡張子.snippetsというファイルを作成すると、その拡張子に対応したスニペットを作成できます。C言語ならc.snippets、pythonならpy.snippetsといった感じです。
mkdir -p ~/.vim/snippets
cd ~/.vim/snippets
vim c.snippets
次に、c.snippetsの中身を書きます。スニペットファイルの書き方についてはSnipMateのドキュメントSnipMate.txtにいろいろ書いてあります。今回は以下のようにしてみました。空白ではなくタブ文字を用いるので注意してください。
snippet hello
#include<stdio.h>
int main(void){
printf("Hello world!\n");
return 0;
}
snippet for
for(int $1 = 0; $1 < $2; $1++){
$0
}
上記のファイルでは、helloと入力した後にTabキーを押すとHello world!と表示するプログラムを挿入し、forと入力した後にTabキーを押すとfor文を挿入するように設定しています。タブストップやミラーを設定することもでき、forのスニペット挿入後にTabキーを押すと、$1、$2の順で入力することができます。入力後のカーソル位置は$0の場所となります。
パーサ変更
デフォルトだと古いSnipMateパーサを使うので、以下をvimrcに追記して新しいバージョンのパーサを使うようにします。
let g:snipMate = { 'snippet_version' : 1 }
完了
私の環境では以上で動きました。スニペット系の他のプラグインは使ったことないんですが、何を使うのが普通なんですかね。私はSnipMateで満足しているので、しばらくは使わせてもらおうと思っています。