LoginSignup
38
32

More than 5 years have passed since last update.

neovim で deoplete + neosnippet の連携をする

Posted at

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

38
32
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
38
32