1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vim-sonictemplate の使い方

1
Last updated at Posted at 2022-09-18

この記事は?

vim-sonictemplate の使い方の備忘録。

本文

インストール方法

自分の場合は dein.toml で管理しているので以下のように記述しています。

dein.toml
[[plugins]]
repo = 'mattn/vim-sonictemplate'

使い方

テンプレートの挿入

:Template {snippet_name} でスニペットを挿入できます。ファイルを新しく開いたとき (ファイルが空の時) は base- から始まるテンプレートから選択可能です。

すでにファイルに何か書き込まれているときには snip- から始まるスニペットを挿入可能です。インデントの中でスニペットを使いたいときにはインサートモードを維持したまま <c-y>t {snippet_name} と入力するとインデントの中で中でスニペット挿入ができます。

テンプレートの追加

テンプレートファイルの名称と置き場所

テンプレートは base- をつけて作成するとファイル新規作成時のテンプレートに、snip- をつけて作成すると作成済みファイルに挿入するスニペットになります。ファイルを置く場所は vim-sonictemplate/template/{language} 以下におけば OK です。{language} 部分は例えば go とか python とかです。なお、自分で適当に作ったフォルダの中に置いて、vim-sonictemplate にそこを参照させることもできます (後述)。

テンプレート作成時のオプション

代入系
  • {{_name_}}: ファイル名を自動挿入します
  • {{_input_:variable_name:default}}: 挿入位置の値をインタラクティブに入力できます。variable_name: という入力フォームが出るのでそこに値を入れます。そのままエンターキーを叩くと default に設定した値が挿入されます
  • {{_expr_:hoge}}: hoge 部分に vimscript を挿入できます。vimscript の戻り値が入力されます
  • {{_if_:expr;foo;bar}}: vimscript で三項演算子を規定します。expr の評価が true なら foofalse なら bar が挿入されます
その他
  • {{_cursor_}}: スニペットを打ち込んだ後にカーソルが置かれる場所を指定できます
  • {{_inline_}}: スニペットをワンライナーで挿入します
  • {{_filter_:hoge}}: 通常アルファベット順にサジェストされるスニペットにおいて hoge が含まれるスニペットを上位にサジェストする

custom settings

テンプレートを置くディレクトリを指定したい場合

sonictemplate_vim_template_dir 変数を変更します。なお、ドキュメントを読む感じこの引数はリストでも渡すことができるので、複数のディレクトリに分散してテンプレートを置くこともできそうです。

dein.toml
[[plugins]]
repo = 'mattn/vim-sonictemplate'
hook_add = '''
  let g:sonictemplate_vim_template_dir = '/root/.config/nvim/templates'
'''

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?