Coc.nvimを触ってみようアドベントカレンダー 1日目 – coc.nvim

とっても楽しいcoc.nvimを触ってみようというアドベントカレンダーです。1日目はcoc.nvimのインストールから。
2021.12.01

Coc.nvimを触ってみよう Advent Calendar 2021 1日目です。

NeoVimで非同期に処理を行うためにcoc.nvmを導入して暫く経ちました。まぁ色々と拡張があるなぁと感心しつつもそれぞれを使いこなせてはいないという現実でした。

見直しも含めて、1記事1拡張というペースで改めて触れてみることにします。大体触れたら便利な使い方とか色々。というわけで、coc.nvim拡張 一人アドベントカレンダーです。初回はcoc.nvimそのもののインストールから。

coc.nvimの導入

すでにNeoVimが導入されている前提です。起動時の処理と分離するためにdein.tomlでのインストールとします。

[[plugins]]
repo = 'neoclide/coc.nvim'
source = 'release'
build = 'coc#util#install()'

設定の追加

:CocConfig にて設定ファイルを開きます。必要に応じて追記していくため、初期値としてあれこれ沢山入っているわけではありません。

特定の作業ディレクトリ内でのみ機能させたい設定等は :CocLocalConfig にて編集します。

コマンドを確認する

わからない場合は:Cocと打ったあとにTabで補完候補を表示させます。利用頻度がそれなりに高かったものを以下。

コマンド 用途
:CocInfo coc.nvimの環境設定を表示しつつ、ログを元に動作確認ができます。ログは :CocOpenLog そのものです。
:CocRestart coc.nvimのserviceを再起動させます。拡張インストール後に正常動作していない時の対策等で使うこともあります。
:CocSearch 正規表現等オプション指定が可能な検索です。

検索する

ポイントはvim本体の使う正規表現と異なるため、やりがちなエスケープミスから開放されるところです。

Vim

/\(foo\|bar\)

Coc

:CocSearch -e (foo|bar)

Error on "..": spawn rg ENOENTと出る場合は brew install ripgrep を実行します。

ステータス表示の調整

実行している処理を可視化するためにも、サンプル等で記載されているステータス設定の追記はおすすめです。

set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}

使い方については :h coc-status を実行します。

あとがき

cocは非同期処理がポイントですが、:CocSearch によるエスケープの嵐を避けた上での検索手続きも魅力です。coc用拡張については後回しで、快適に検索できるか確認するところから始めるのも一つの手です。