deoplete は neovim の補完プラグインなのですが,設定をせずに neosnippet のスニペット機能を同時に利用しようとしてもうまくいきません.
例えば,for 文を展開しようとしても,補完結果として for
と出力されるだけで,for 文のフォーマットをよしなに出力してくれません.
そこで,以下のように,dein.toml と dein_lazy.toml
に設定するとスニペット機能を利用できます.
dein.toml
# dein.toml
[[plugins]]
repo = 'Shougo/neosnippet-snippets'
dein_lazy.toml
# dein_lazy.toml
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_source = '''
let g:deoplete#enable_at_startup = 1
inoremap <expr><tab> pumvisible() ? "\<C-n>" :
\ neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<tab>"
'''
on_i = 1
[[plugins]]
repo = 'Shougo/neosnippet'
hook_source = '''
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']
以下のように補完機能もスニペット機能も利用できます.
gif での入力キー表示は以下の入力を表しています.
- ^k : Ctrl-k
- ->| : TAB