sonictemplate-vimとは
mattnさんが作られた、テンプレートを管理するvimプラグイン。mattn/sonictemplate-vim
ノーマルモードで:Template
と書いた後にタブを押すことで、テンプレートの候補が表示され、とても簡単で激速。
(自分の環境では:Tem
でタブを押すと最初にTemplateが出る。一度スペースを打ち、場合によってはテンプレート名の頭文字をいれ、タブを押して選ぶだけ)
mattnさんご本人の解説もあるので、もっと詳しく知りたい方は参考にされるといいと思います。
自分専用テンプレート
自分が使うテンプレートも呼び出せるようにして楽したい。
sonictemplateそのものに自分のテンプレートを突っ込むと色々管理とか問題起きそうなので、次の方法を取ります。
- テンプレート用のディレクトリを用意する
- init.vimもしくは.vimrcで指定する
- テンプレートを書く
ディレクトリ
テンプレート用ディレクトリは邪魔にならず、編集もしやすいところに作るのがいいでしょう。githubなどに公開したりすることも想定して決めるのもいいと思います。自分は~/git
以下にgithubなどから拾ってきたものを入れていることが多いので、~/git/template
を使うことにします。
init.vimもしくは.vimrc
テンプレート用ディレクトリをvimに教えてあげないといけないので、.vimrc
、neovimならinit.vim
に
let g:sonictemplate_vim_template_dir = [
\ '~/git/template'
\]
のように、g:sonictemplate_vim_template_dir
を指定します。sonictemplateのデフォルトのテンプレートのディレクトリは、指定しなくてもそのまま使えるので安心してください。
テンプレート本体
テンプレートになるファイルは、テンプレートディレクトリ/言語名/ファイル名
のような配置をします。ファイル名には命名規則があります。[種類]-[テンプレート名].[拡張子]のようにします。種類はbase・file・snipの3種類で、baseは何も書いていない時に呼び出され、fileはbuffer名とテンプレート名が一致し、まだ何も書いていないときに呼び出されます。すでに何かを書いているとsnipが呼ばれます。
例えば、gulpfile.jsのテンプレートを用意するなら、自分の場合だと、~/git/template/javascript/file-gulpfile.js
を用意する事になります。
テンプレートファイルでは、変数などが使えます。
{{_name_}}だとファイル名。{{_cursor_}}でテンプレートを出した後のカーソルの位置。少し凝ったもので、{{_input_:var}}とすると、テンプレートを呼び出すときに、varの部分を何にするのか聞かれ、それが入ります。詳細は:help sonictemplate-vim-writetemplate
に書かれています。
終わりに
sonictemplateの使い方が分かったので、色々とテンプレートを作って楽したいと思います。一応、n-kats/templateに公開場所だけ作ったので、やる気が続けばここにテンプレートが増えていくはず。