Vim
Mac
Linux
neovim

neovim で deoplete + neosnippet の連携をする

More than 1 year has passed since last update.

deopleteneovim の補完プラグインなのですが,設定をせずに 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

movie_out.gif