generated at
vim-vsnip
概要
vim-vsnipVim/Neovimスニペットプラグインです。

特徴
LSPまたはVSCodeと同様のフォーマットでスニペットを定義します。
vim-vsnip-integと併用することで様々なプラグインと連携できます。(例: asyncomplete.vim, ddc.vim, vim-lspなど)
VimScriptのみで実装されています。

インストール
toml
[[plugins]] repo = 'hrsh7th/vim-vsnip' [[plugins]] repo = 'hrsh7th/vim-vsnip-integ'

スニペットを定義する
VsnipOpen コマンドを実行すると、編集中のファイルのファイルタイプに応じたスニペットファイルを編集できます。
vim-vsnipでは、スニペットファイルをLSPまたはVSCodeと同様のフォーマットで記述します。

スニペットファイルの保存場所
g:vsnip_snippet_dir で指定されたディレクトリに保存されます(デフォルトは ~/.vsnip )

スニペットの展開
<Plug>(vsnip-expand) で展開できます。
例えば、vimrcinit.vimで以下のように設定しておくと、 C-j でスニペットが展開できるようになります。
vim
imap <expr> <C-j> vsnip#expandable() ? "<Plug>(vsnip-expand)" : "<C-j>"

スニペットファイルの記述例
ruby.json
{ "Class": { "prefix": "class", "body": [ "class $0", "end" ] }, "Module": { "prefix": "module", "body": [ "module $0", "end" ] }, "Method": { "prefix": "def", "body": [ "def $0()", "end" ] } }
例えば、 .rb ファイルの編集中に class と入力した状態で <Plug>(vsnip-expand) を実行すると、下記のように展開されます( はスニペット展開後のカーソルの位置を表しています)
ruby
class ■ end