Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

sonictemplate-vimで自分専用テンプレート

$
0
0

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

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に公開場所だけ作ったので、やる気が続けばここにテンプレートが増えていくはず。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>