メモ。
よく使うコードスニペットを簡単に挿入する機能を提供してくれる vim プラグイン neosnippet。
これに、自分でよく使うスニペットを追加する方法。
こちらの記事が参考になりました。
設定方法
.vimrc
に以下を記述する。
# これはインストール済み NeoBundle 'Shougo/neocomplete' NeoBundle 'Shougo/neosnippet' NeoBundle 'Shougo/neosnippet-snippets' " Plugin key-mappings. " <C-k>でsnippetの展開 imap <C-k> <Plug>(neosnippet_expand_or_jump) smap <C-k> <Plug>(neosnippet_expand_or_jump) " 自分用 snippet ファイルの場所 (任意のパス) let g:neosnippet#snippets_directory = '~/.vim/snippets/'
自作 snippet の配置場所については、
私の場合 .zshrc
や .vimrc
はまとめて ~/dotfiles
に置き、そこからシンボリックリンクを貼るようにしている。
(よくある構成です)
そのため、今回も ~/dotfiles
内に snippets
というディレクトリを作り、そこから .vim/snippets
へシンボリックリンクを貼ることにした。
べつに snippets_directory
として直接 ~/dotfiles/snippets/
を指定してもいいと思う。
HOME ├── .vim │ ├── snippets # シンボリックリンク │ └── bundle │ └── neosnippet-snippets │ └── neosnippets # デフォルトで用意されているスニペット │ ├── java.snip │ ├── python.snip │ ├── ... │ └── dotfiles # git で管理 ├── .vimrc ├── .zshrc └── snippets # 実体 └── # 独自スニペットはここに置く
この状態で vim を起動し、スニペットを追加したい拡張子のファイルを開いて
:NeoSnippetEdit
を実行するとスニペット定義ファイルを開くことができるので、自作スニペットを記述する。
ファイルは snippets_directory
で定義したディレクトリに保存される。
デフォルトのスニペットが定義されている拡張子の場合もこちらにファイルが作成され、デフォルトと追加したスニペットと両方使える。
スニペットの書式についてはデフォルトで用意されてるものを参考にすると良い。
例として java.snip
を開くと
snippet class class ${1} ${2:extends} ${3:#:Parent} ${4:implements} ${5:#:Interface} { ${0:TARGET} }
となっている。
snippet ***
の ***
がキーワードになり、vim の insert モード中にキーワードを入力するとスニペットが補完候補に表示される。
実際のスニペットはその1行下からインデントして記述する。
また ${1}, ${2}
という変数を埋め込んでおくとスニペット挿入時にその箇所にカーソルがセットされ、Ctrl-k
を押すと次の番号の位置に飛ぶ。