Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

[Vim] Vim に Language Server Protocol クライアント機能を導入して Rubyの補完機能を復活させた

$
0
0

YouCompleteMeをしばらく前から使っていました。最近、MacOSXな環境で、Rubyの補完がうまく動かなくて、 .を入力した瞬間、 vim が死亡するようになってしまいました。原因は良くわかりません。とりあえず、死ぬのは困るので、 --disable-rubyinterpで、Vimをビルドしてました。

YouCompleteMe で、Ruby の補完ができなくなってしまったので、何か他に良い方法ないかとあちこちのサイトを眺めていて、 deoplete.nvimLanguageClient-neovimsolargraphを組み合わせたら、行けるんじゃないかと思い、試してみました。

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と入力すると以下のような候補が表示されます。

2018-07-14-140807_536x203_scrot.png

おわりに

もっと、色々いじると便利になるのかも知れませんが、今のところ、こんな感じで様子を見たいと思います。

他の言語でも LSPなサーバーをインストールすれば、同じように使えると思いますが、そこは様子を見ながら切り替えたいと思います。


Viewing all articles
Browse latest Browse all 5608

Trending Articles