Vimのneosnippetで自分用snippetファイルを追加したい
neosnippetが凄いので使いましょう.
Shougo/neosnippet.vim · GitHub
Luaを有効にしたVimのインストール
luaが有効になっているvimを導入します.
» luaを有効にしてVimをインストールする TECHSCORE BLOG
ここを参考にして, Luaを有効にしたVimをインストールしましょう.
NeoBundleでneosnippetをインストール
vimrcに
" 補完プラグイン NeoBundle 'Shougo/neocomplete' " スニペット補完プラグイン NeoBundle 'Shougo/neosnippet' " 各種スニペット NeoBundle 'Shougo/neosnippet-snippets'
と書けば, neocompleteとneosnippetと各種スニペットが入ります.
スニペットの展開をC-kにマップします
" Plugin key-mappings. " <C-k>でsnippetの展開 imap <C-k> <Plug>(neosnippet_expand_or_jump) smap <C-k> <Plug>(neosnippet_expand_or_jump)
としておけば, C-kでスニペット補完してくれます
スニペットの記法を見てみます.
デフォルトのスニペットは, 僕の場合
$HOME/.vim/bundle/neosnippet-snippets/neosnippets/
にありました.
以前はneosnippetにデフォルトで入っていたスニペットが削除されて,
別のプラグイン扱いになったみたいです.
neosnippet.vim からデフォルトのスニペットが削除された - C++でゲームプログラミング
今までは, NeoBundle neosnippetだけでOKでしたが,
今後は NeoBundle neosnippet-snippetsをする必要があります.
中身を除いてみます.
snippet mathexpression alias $ abbr $ expression $ $${1:#:expression}$${2} # ========== ENVIRONMENT ========== snippet begin alias \begin \begin{${1:#:type}} ${2:TARGET} \end{$1} snippet list alias \begin{list} \list \begin{list} ${1:TARGET} \end{list}
よく分かりました.
$数字のところに書き込んで, C-kで次の番号に飛ぶんですかね.
自分用スニペット
自分でスニペットを定義して読み込ませたいです.
vimrcに
" 自分用 snippet ファイルの場所 let s:my_snippet = '~/snippet/' let g:neosnippet#snippets_directory = s:my_snippet
として, $HOME/snippet/に自分用snippet定義ファイルを置けば,
自分で定義したsnippetが利用できます.
texのスニペットを作りました. tex.snipとして, 中に書き込みます.
デフォルトだと, align環境とalign*環境, そしてeqrefに関するスニペットが見つからなかったので,
自分で書いてみました.
# ==== User definition ==== snippet eqref alias \eqref \eqref{${1}}${0} snippet salign alias \begin{align*} \align* \begin{align*} ${1:TARGET} \end{align*} snippet align alias \begin{align} \align \begin{align} ${1:TARGET} \end{align}
最初は$\$\text{1}$に飛んで, 書き込んだらC-kで次の番号に飛んで,
最後は$\${0}$の位置に飛ぶ...と理解しています.
これで好きなだけスニペットが書けます.
enjoy!