Fusic Tech Blog

Fusion of Society, IT and Culture

mattn/vim-lsp-settingsを使ったvim-lsp
2020/07/01

mattn/vim-lsp-settingsを使ったvim-lsp

Language Server Protocol

Language Server ProtocolはMicrosoftが公開した仕様でテキストエディタやIDEで共通的に利用する
コード補完や定義ジャンプ、参照の検索などを実現するものです。

Langserver.orgに記載されていますが、様々な言語のLanguage Serverが既に用意されています。
Goで言うとgoplsなどの Language Serverにあたります。

LSPと略されてる事がしばしばありますので、ここではLSPと略して表記していきます

VimでLSPを利用する

共通的な仕様なので、もちろんVimでも利用することが可能です。
導入するためにはVimのプラグインを利用するのですが、様々なプラグインがあります。

こちらのQiitaでも書かれていますが、Vim の Language Server 界が抱える問題があります。

  • Language Server のインストールそのものが難しい
  • インストールした Language Server を Vim に登録するのが難しい

これらを解決してくれるのが、mattn/vim-lsp-settingsです。

mattnさんご自身のブログにも書かれてますがVim をモダンな IDE に変える LSP の設定を見て設定していきます

インストール

vim-plugを使っている場合、 .vimrcに以下を記述

Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'

そしてインストール

:PlugInstall

通常のプラグインと同様です。

vim-lspの設定を変更したい場合はGithubを見たり、

:help vim-lsp

でHelpを見ながら設定してください。

僕はmattnさんVim をモダンな IDE に変える LSP の設定を参考にさせてもらって若干変更してます

Language Serverをインストールする

利用したい言語のファイルを開くと以下の様なメッセージが出力されます

Please do :LspInstallServer to enable Language Server ****

メッセージに従い、:LspInstallServerを実行すると、画面分割が行われ自動的に必要ファイルのダウンロード、 インストールまでが行われます。

この状態でプログラムを書くと、vim-lspの設定に応じてLSPがコーディングを手助けしてくれます。

vim-lspの設定は、自分の知識の整理と深堀の為、別記事にまとめようと思います。

vim-lsp

まとめ

LSPを使うと本来思考を割かなければいけない部分を補完してくれて、各種IDEと同じ様な使用感でVimを使う事が出来ます。

mattn/vim-lsp-settingsを使えば、少し面倒なLSP設定なども引き受けてくれるので、依存して生きていこうと思います。

どうしてもVimから離れられないエンジニアにはオススメですのでぜひLSPを使いましょう

Shiro Seike

Shiro Seike

Company:Fusic CO., LTD. Slides:slide.seike460.com blog:blog.seike460.com Program Language:PHP , Go Interest:Full Serverless Architecture