YouCompleteMeをしばらく前から使っていました。最近、MacOSXな環境で、Rubyの補完がうまく動かなくて、 .
を入力した瞬間、 vim が死亡するようになってしまいました。原因は良くわかりません。とりあえず、死ぬのは困るので、 --disable-rubyinterp
で、Vimをビルドしてました。
YouCompleteMe で、Ruby の補完ができなくなってしまったので、何か他に良い方法ないかとあちこちのサイトを眺めていて、 deoplete.nvimと LanguageClient-neovimと solargraphを組み合わせたら、行けるんじゃないかと思い、試してみました。
deoplete.nvim
deoplete.nvim をインストールします。
.vimrc
if has('nvim')
Plug 'Shougo/deoplete.nvim',{'do':':UpdateRemotePlugins'}else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'endifletg:deoplete#enable_at_startup =1
LanguageClient-neovim
LanguageClient-neovimは、Neovimやvim を language server protocol(LSP) に対応させるためのスクリプトです。
.vimrc
Plug 'autozimu/LanguageClient-neovim',{ \'branch':'next', \'do':'bash install.sh', \}" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf'
設定の追加
起動時に deoplete を有効にして、Rubyスクリプトを編集するときは、 solargraph が LSPサーバーとして動作するように設定します。
.vimrc
letg:deoplete#enable_at_startup =1letg: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なサーバーをインストールすれば、同じように使えると思いますが、そこは様子を見ながら切り替えたいと思います。