読者です 読者をやめる 読者になる 読者になる

300億円欲しい

メジャーリーグのデータ解析します

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!