とにかくはやくvimで人が作ったスニペットファイルを使いたいメモ

結構前にUltiSnipsというスニペットエンジンのプラグインを入れました。
そのとき一緒にvim-snippetsという色んなプログラミング言語に対応したスニペットファイルを入れていたので、UltiSnipsでどのように使えるのかを確認していきたいと思います。

とにかくはやくvimのスニペットプラグインを入れて使うためのメモ

UltiSnipsを使って自分で定義したスニペットを挿入できるようにします。

準備

まず、.vimrcを開いてUltiSnipsの設定を変更します。
前回編集していたところのg:UltiSnipsSnippetDirectoriesの変数に、vim-snippetsのスニペットがあるディレクトリを追加で指定します。

UtiSnipsのヘルプを見ると、この変数にはスニペットが置いてあるディレクトリのパスがリストで指定できることがわかるので、前回指定したディレクトリはそのままに以下のように指定しました。

.vimrc
let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/UltiSnips',$HOME.'/.vim/bundle/vim-snippets/UltiSnips']

実践

早速スニペットを利用してみます。
どのようなスニペットが利用できるのかを確認したいので、スニペットファイルを直接見に行きます。
試しに以下の場所にあるpythonのスニペットを見てみることにします。

~/.vim/bundle/vim-snippets/UltiSnips/python.snippets

例えば、if文のスニペットを見てみます。
ifやife,ifeeが定義されているのがわかります。

お試し用のpythonのファイルを別に用意し、ifと入力してtabを押すとif文が展開されます。
他にもifeと入力してtabを押すとifelse文が展開され、ifeeと入力してtabを押せば3つの条件に対応するif文が展開されます。

もし、ifは展開されるのにifeやifeeが展開されない場合、g:UltiSnipsSnippetDirectoriesにスニペットファイルのディレクトリが正しく設定されているか確認してください。


参考

Why if can expand instead of ifee in vim-snippets and ultisnips? - Stack Overflow