グレインの備忘録

プログラミング関係とかをつらつらと。

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で入力位置移動