← Vim研究所

Neovimの構成診断コマンド:checkhealthの使い方

2019-12-17 公開 ・ 更新: 2026-08-20

プラグインを追加した後や、環境を新しくした後に「なんとなく動きが怪しい」と感じることがあります。原因を1つずつ手探りで確認するより先に、まず:checkhealthを実行すると、設定の何が問題かを一括で洗い出せます。

目次(10項目)

:checkhealthとは

Neovimに標準搭載されている診断コマンドで、実行すると一連のチェック項目を順番にテストし、結果をレポート形式のバッファに表示します。

:checkhealth

問題が見つかった箇所には、原因や対処方法へのヒントも一緒に表示されます。似た名前の:healthcheckというコマンドは存在しないので、打ち間違えに注意が必要です。

何をチェックしてくれるのか

デフォルトの標準チェック項目に加えて、導入しているプラグイン側が対応していれば、そのプラグイン固有の状態も表示されます。代表的な確認項目は次のとおりです。

実体はruntime/lua/vim/healthを中心とした診断用のフレームワークで、設定ファイルの内容次第で確認できる項目が変わります。プラグイン側がhealth.lua(旧仕様ではhealth#プラグイン名#check())を実装していれば、そのプラグイン専用のチェック結果も一覧に加わります。

特定のプラグインだけをチェックする

プラグインの数が多いと結果が長くなり、目的の項目を探しづらくなります。引数にプラグイン名を渡すと、そのプラグインのチェックだけに絞り込めます。

:checkhealth lazy
:checkhealth mason
:checkhealth vim.lsp
要点:LSPまわりの不調を疑ったときは、まず:checkhealth vim.lspを実行すると原因の切り分けが早くなります。

Vim(非Neovim)で同等の確認をしたい場合

:checkhealthはNeovim固有のコマンドで、Vim/gVimには実装がありません。同等の確認をしたい場合は、rhysd/vim-healthcheckのようなプラグインで近い機能を補えます。ただし、外部言語のプログラミング言語環境チェックまでは対応していない点に注意が必要です。

結果に赤字(ERROR)が出たときの読み方

結果は基本的にOK・WARNING・ERRORの3段階で表示されます。ERRORの緊急度は、その機能を実際に使っているかどうかで変わります。

ERRORの出た機能優先度
実際には使っていないプロバイダやツール緊急対応は不要な場合がほとんど
普段使っている機能(Python連携やクリップボードなど)設定ファイルのパス指定や外部ツールの導入状況を優先して見直す
使ってみて

環境を移行した直後にクリップボードが効かなくなったことがありましたが、:checkhealthを実行したらクリップボードプロバイダが見つかっていないことがすぐに分かりました。原因を勘で探すより、先にこのコマンドを叩く習慣をつけたほうが結果的に早く解決できると感じています。

警告を減らす方向で考える

すべてをOKにする必要はありません。使っていない機能の警告は残しておいても実害がなく、むしろ無効化しておくほうが起動が速くなります。

let g:loaded_python3_provider = 0
let g:loaded_ruby_provider = 0
let g:loaded_perl_provider = 0
let g:loaded_node_provider = 0

この4行を書くと、対応する項目は「無効化されている」と表示されるようになり、警告が消えます。使うことになったら該当する行を外せば元に戻ります。探索そのものが走らなくなるので、起動時間にも効きます。

結果を人に渡す

不具合を報告するとき、環境の情報として :checkhealth の結果を求められることがあります。表示されているのは普通のバッファなので、そのまま保存できます。

:checkhealth
:w /tmp/health.txt
:checkhealth vim.lsp    " 特定の項目だけ

Neovim 0.10以降、標準の項目は vim.health のように名前空間が付いた形になっています。:checkhealth のあとに Tab を押せば、その環境で実行できる項目の一覧が補完で出ます。

切り分けの順番

動きが怪しいときは、:checkhealth の次に確かめる順番を決めておくと早く済みます。まず設定を読まずに起動して再現するかを見て、再現しなければ自分の設定が原因です。

nvim --clean                  " 設定を読まずに起動
:scriptnames                  " 何が読み込まれているか
:verbose set <オプション>?     " どこで設定されたか
nvim --startuptime /tmp/s.log " どこで時間を使っているか

この4つで、環境の問題・プラグインの問題・自分の設定の問題を切り分けられます。読み込み順の調べ方はscriptnamesの記事にまとめています。

まとめ

:checkhealthNeovimの設定・環境まわりの不調を切り分ける最初の一手として使えます。プラグイン名を指定すれば特定領域だけに絞り込めるので、環境構築後や不調を感じたときは習慣的に実行すると安心です。Pythonの項目で警告が出たときの対処は実行パスの設定に、設定ファイルそのものが読まれていない疑いがあるときは:scriptnamesのほうが切り分けに向いています。

関連記事

← Vim研究所 トップへ戻る