YouCompleteMe をしばらく前から使っていました。最近、MacOSXな環境で、Rubyの補完がうまく動かなくて、 .
を入力した瞬間、 vim が死亡するようになってしまいました。原因は良くわかりません。とりあえず、死ぬのは困るので、 --disable-rubyinterp
で、Vimをビルドしてました。
YouCompleteMe で、Ruby の補完ができなくなってしまったので、何か他に良い方法ないかとあちこちのサイトを眺めていて、 deoplete.nvim と LanguageClient-neovim と solargraph を組み合わせたら、行けるんじゃないかと思い、試してみました。
deoplete.nvim
deoplete.nvim をインストールします。
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
endif
let g:deoplete#enable_at_startup = 1
LanguageClient-neovim
LanguageClient-neovim は、Neovimやvim を language server protocol(LSP) に対応させるためのスクリプトです。
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf'
設定の追加
起動時に deoplete を有効にして、Rubyスクリプトを編集するときは、 solargraph が LSPサーバーとして動作するように設定します。
let g:deoplete#enable_at_startup = 1
let g:LanguageClient_serverCommands = {
\ 'ruby': ['solargraph', 'stdio'],
\}
call deoplete#custom#var('omni', 'input_patterns', {
\ 'ruby': ['[^. *\t]\.\w*', '[a-zA-Z_]\w*::'],
\})
Python3 interface のインストール
Python3 interface をインストールします。
$ pip3 install neovim
solargraph のインストール
$ gem install solargraph
$ yard gems
$ yard config --gem-install-yri
動作確認
.rbファイルを開いて、 cl
と入力すると以下のような候補が表示されます。
おわりに
もっと、色々いじると便利になるのかも知れませんが、今のところ、こんな感じで様子を見たいと思います。
他の言語でも LSPなサーバーをインストールすれば、同じように使えると思いますが、そこは様子を見ながら切り替えたいと思います。