deoplete環境でneosnippetを使えるようにする
neosnippetはスニペットを挿入できるプラグインだが、機能的にdeopleteと干渉する部分があるので少し工夫をする必要がある。
メモ程度に設定方法を残しておく。
参考:neovim で deoplete + neosnippet の連携をする
導入
dein.tomlとdein_lazy.tomlに以下のとおりに追記する。
※tomlファイルを活用しているが、hook_post_source内のスクリプトをinit.vim内に書けば同じことである。
[dein.toml] [[plugins]] # snippets repo = 'Shougo/neosnippet-snippets'
[dein_lazy.toml] [[plugins]] # neosnippet repo = 'Shougo/neosnippet.vim' hook_source = ''' "Ctrl+Kにターゲットジャンプ割当 imap <C-k> <Plug>(neosnippet_expand_or_jump) smap <C-k> <Plug>(neosnippet_expand_or_jump) xmap <C-k> <Plug>(neosnippet_expand_target) if has('conceal') set conceallevel=2 concealcursor=niv endif ''' on_i = 1 on_ft = ['snippet'] depends = ['neosnippet-snippets'] [[plugins]] # deoplete repo = 'Shougo/deoplete.nvim' hook_source = ''' let g:deoplete#enable_at_startup = 1 "Tab補完の設定 inoremap <expr><tab> pumvisible() ? "\<C-n>" : \ neosnippet#expandable_or_jumpable() ? \ "\<Plug>(neosnippet_expand_or_jump)" : "\<tab>" ''' on_i = 1
操作方法
- Ctrl+Nで候補切り替え
- 候補を選択した状態でCtrl+Kでスニペット挿入
- 以後Ctrl+Kで入力位置移動