vimのUltiSnipsというプラグインを利用して独自のスニペットを追加できるようにする。neosnippetというプラグインは私の環境ではエラーになるので面倒臭くなってあきらめた。
~/.vimrcの追加内容
試しに今編集しているmarkdownのファイルで:UltiSnipsEditと入力し、以下のスニペットを定義してみた。定義の最後にendsnippetで閉じるのを忘れないようにして保存する。
プラグインのインストール
Vundleの利用が前提。.vimrcに以下の内容をコピペして保存する。 let g:UltiSnipsSnippetDirectoriesの行以外は本家のQuick Startの内容そのまま。
独自のスニペットを扱うためにlet g:UltiSnipsSnippetDirectoriesの行を追加している。独自スニペットの保存先のディレクトリを指定しておく。~/.vimrcの追加内容
" Track the engine. Plugin 'SirVer/ultisnips' " Snippets are separated from the engine. Add this if you want them: Plugin 'honza/vim-snippets' " Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe. let g:UltiSnipsExpandTrigger="<tab>" let g:UltiSnipsJumpForwardTrigger="<c-b>" let g:UltiSnipsJumpBackwardTrigger="<c-z>" " If you want :UltiSnipsEdit to split your window. let g:UltiSnipsEditSplit="vertical" let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/UltiSnips']
:PluginListでvimが認識しているプラグインを確認。追加したプラグインがなければファイルを開き直す。
:PluginInstallをして、プラグインをインストールする。インストールされると、:PluginListで表示したプラグイン一覧で名前の横に印が付き、Doneと表示される。
独自スニペットの追加
let g:UltiSnipsSnippetDirectoriesで定義したUltiSnipsディレクトリを作成する。
スニペット機能を利用したいファイルをvimで開いて:UltiSnipsEditと入力すると、スニペットを登録できる自動的に生成されたファイルが開くので、そこに自分が使いたいスニペットを入力する。
snipと入力してタブを押すと、スニペットを定義するための雛形が展開される。試しに今編集しているmarkdownのファイルで:UltiSnipsEditと入力し、以下のスニペットを定義してみた。定義の最後にendsnippetで閉じるのを忘れないようにして保存する。
snippet toc "table of contents tag" <div class="TOC"></div> endsnippet
これで、どのmarkdownのファイルでも定義したスニペットが使えるはず。
試しにtocと入力してタブを押してみると登録したタグが展開されました。
ばっちり成功です🤗
とにかくはやくvimで人が作ったスニペットファイルを使いたいメモ
UltiSnipsで既存のスニペットファイルを利用する方法です。pythonを例に説明します。
リンク
リンク