Sinatraのあらかると

記録することで、環境構築で悩まない。

Vim8のdeoplete補完について

環境構築ブログなので、何も言わずに対応してくれていたメンテナに感謝しています。

Windows 10
python 2.7.14
python 3.5.4

deinを環境構築まだは、こちら。

takkii.hatenablog.com

takkii.hatenablog.com

takkii.hatenablog.com

deinを使うには、deinでVimのプラギン管理。と

改番、dein,deopleteとの付き合い方を参考に。

vim-plugを使うには、dein記事の無効を参考に。

読者がプラギンマネージャーを選べますよ。

neocompleteから移行するのも、フォルダを消して、

.vimrcの記述を削除すれば動作します。シンプル。

さっき、やってみました。Vim8でdeoplete対応版。

github.com

nvim_buf_line_countメソッドがno implementsだと言っていました。私が構築したときメンテナに報告してくださいのメッセージが流れていたのですが、数分後に追加してくれていました。これにより、WindowsでもdeopleteがVim8で環境構築できるようになっています。すごい。

vim8なのでおなじみの.vimrcに追加していきます。(init.vimじゃないよ)

※ 忘れていないよね、このスタートする記述...

github.com

" Use deoplete.
let g:deoplete#enable_at_startup = 1

takkii.hatenablog.com

let g:python3_host_prog='Python3のインストール先/python.exe'

let g:python_host_prog='python2のインストール先/python.exe'

python.exeはpython3だけ、python3.exeに名前を変更します。

takkii.hatenablog.com

こんな問題がありますが、システム環境変数にインストール先/Scriptsを追加しpip3 install neovimをしておけば大丈夫です。pip3.exeがある場所を通しておくと便利です。python2もScriptsの場所だけシステム環境変数に追加しpip install neovimを実行します。念のためにpython35フォルダでpython.exeがある場所を環境変数に追加しておくと後々助かります。

deinを使っている前提で既存の.vimrcに、

Vim8では動作しないそうなので、deoppet.nvimを削除します。

※ 参考に、自分の好みにあわせてdeopleteの言語をあわせましょう。私はRubyプログラマーなので、deoplete-rubyをプラギンに追加しています。

call dein#add('Shougo/deoplete.nvim')
  call dein#add('Shougo/deoplete-rct')

  if !has('nvim')
  call dein#add('roxma/nvim-yarp')
  call dein#add('roxma/vim-hug-neovim-rpc')
  endif
  
  call dein#add('fishbullet/deoplete-ruby')

書き足します。

deinの記事を参考にneosnippetは追加しているはずなので、

" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1

" Plugin key-mappings.
 imap <C-k>     <Plug>(neosnippet_expand_or_jump)
 smap <C-k>     <Plug>(neosnippet_expand_or_jump)
 xmap <C-k>     <Plug>(neosnippet_expand_target)

" SuperTab like snippets behavior.
 imap <expr><TAB> neosnippet#expandable_or_jumpable() ?
 \ "\<Plug>(neosnippet_expand_or_jump)"
 \: pumvisible() ? "\<C-n>" : "\<TAB>"
 smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
  \ "\<Plug>(neosnippet_expand_or_jump)"
   \: "\<TAB>"

" For snippet_complete marker.
   if has('conceal')
   set conceallevel=2 concealcursor=i
   endif

この設定を足します。既にあればそのままでOKです。

echo has ('python3')

echo has ('python')

で1を返せば完了です。

:message

を読んで、エラー対処していきなくなれば、

Vimを起動したら、ゆるゆると単語補完がでますよ。お疲れ様。

channel - Vim日本語ドキュメント

E906エラーがたまに流れます。これはVim8のチャンネルを終了していないのだと想われます。

※ 最新のWindows版Vim8ではでなくなるのを確認しました。ないとは想いますが、kaoriya-vim8-win32と最新のvim8を混在して、プロセスを並列しないほうがいいと想います。私は環境をみるためにそうしたのですが、E906エラーはそのあたりなんじゃないかと推測しています。もし、同じエラーに遭遇したら、チャンネルをcloseする処理をchannel - Vim日本語ドキュメントの上記リンクから考えてみるのも手です。

その後の、対処状況

追記:WindowsVimは最新を使ってますか?

github.com

最新をお使いください。GitHubVimのレポジトリがあります。

動画を修正しました。次はあるのかな...

Copyright © 2007-2017 Takayuki Kamiyama. All Rights Reserved.