rcmdnk's blog

COCキー

Vim/NeoVimをVSCodeのような開発環境にしてくれるプラグインであるcoc.nvimの 各言語などに対するサポートプラグインの管理方法について。

coc.nvim

coc.nvimはVim/NeoVimをVSCodeのような開発環境にしてくれるプラグイン。

coc.nvim自体のインストールは.vimrc/init.vimなどの中で 適当なプラグインマネージャーを使って管理します。

dein.vimなら

.vimrc
1
2
3
if has('nvim-0.4.0') || has('patch-8.1.1719')
  call dein#add('neoclide/coc.nvim')
endif

Vimならpatch 8.1.1719, NeoVimなら0.4.0以降で使えます。

サポートプラグインのインストール方法

coc.nvimのサポートプラグインはnpmで管理されています。

coc.nvimをインストールすると、CocInstallというコマンドが使えるようになり、 コマンドラインモードで

:CocInstall coc-actions

みたいにするとcoc-actionsというプラグインがインストールできます。

サポートプラグインの管理方法

ただ、都度インストールしていると

たくさんインストールするものがあるとその都度やっていると他の環境で忘れてしまうので、 以下の様な関数を定義しておいて、外部のコマンドラインからインストールできるようにしておくと 便利です。

.vimrc
1
2
3
4
5
6
7
8
function! InstallCocExtentions()
  CocInstall -sync coc-actions coc-browser coc-calc coc-clangd coc-cmake coc-css
  CocInstall -sync coc-explorer coc-fzf-preview coc-git coc-go coc-highlight
  CocInstall -sync coc-html coc-java coc-tsserver coc-json coc-dictionary coc-word
  CocInstall -sync coc-tag coc-lists coc-markdownlint coc-powershell coc-pyright
  CocInstall -sync coc-sh coc-spell-checker coc-sql coc-texlab coc-vimlsp coc-xml
  CocInstall -sync coc-yaml coc-yank coc-diagnostic
endfunction

という感じの関数を定義しておきます。

CocInstallは通常はバックグラウンドプロセスとして起動するのでコマンドラインからvim -c "CocInstal coc-actions|quit"みたいにしてしまうと インストールプロセスの途中でquitが呼ばれてしまいます。 -syncオプションを使うことでコマンド終了まで待つプロセスにしてくれます。

また、複数のプラグインを同時に与えて並行してインストールすることも可能ですが、 あまり数が多いとエラーが出るので上のように5つくらいごとに分けて行っています。

これを使って

vim -c "silent call InstallCocExtentions()|quit"

としてあげればインストールされます。

.vimrc/init.vimをdotfilesなどで管理、同期している場合、 新しいプラグインを追加したらInstallCocExtentions()に追加します。

これでcronジョブなどで定期的に

nvim -c "silent call InstallCocExtentions()|quit"
nvim -c "silent call CocUpdate()|quit"

みたいな事を実行してあげれば別の環境で新しく追加されたプラグインが同期先の環境でも追加され またプラグインも最新のものに保てます。

Ref:

rcmdnk/dotfiles/.vimrc

Sponsored Links
Sponsored Links

« poetryのcompletionが壊れてる Vimでコピペ用に色々消す »

}