症状

lazy.nvimでインストールしたプラグインが読み込まれない、または設定が反映されない

結論:まずこれを確認

  1. :Lazy でプラグインの状態を確認(Installed / Not Installed / Error)
  2. :checkhealth lazy でlazy.nvim自体のエラーを確認
  3. プラグイン定義の configopts の記述ミスを確認

操作フロー

    flowchart TD
    A[プラグインが動作しない] --> B{:Lazyでステータス確認}
    B -->|Not Installed| C[インストール実行]
    B -->|Installed| D{:checkhealth lazy}
    B -->|Error表示| E[エラーメッセージを確認]
    C --> F[:Lazy sync を実行]
    D -->|エラーあり| G[設定ファイルを修正]
    D -->|エラーなし| H{遅延読み込み設定を確認}
    E --> G
    H -->|event/cmd/ft設定あり| I[トリガー条件を確認]
    H -->|設定なし| J[依存関係を確認]
    I --> K[該当操作を実行してみる]
    J --> L[dependencies設定を確認]
  

よくある原因

  • プラグインがインストールされていない - :Lazy sync が実行されていない
  • 設定ファイルのパスが間違っている - ~/.config/nvim/lua/plugins/ 配下に配置されていない
  • 遅延読み込み設定でトリガーされていない - event, cmd, ft の条件を満たしていない
  • Lua構文エラー - テーブル定義のカンマ忘れ、括弧の不一致
  • 依存プラグインが読み込まれていない - dependencies の設定漏れ
  • config 関数内でエラー発生 - プラグイン固有の設定ミス
  • プラグイン名の記述ミス - GitHubリポジトリ名と一致していない

操作手順

ステップ1: lazy.nvimの状態を確認する

Neovimを起動して以下を実行する。

    :Lazy
  

🔍 チェックポイント: プラグイン一覧が表示され、対象プラグインの状態が Installed になっているか確認

状態が Not Installed の場合:

    :Lazy sync
  

ステップ2: エラーの有無を確認する

    :checkhealth lazy
  

🔍 チェックポイント: ERRORWARNING が表示されていないか確認

エラーがある場合はメッセージ内容をもとに設定ファイルを修正する。

ステップ3: 設定ファイルの構文を確認する

設定ファイルの場所:

    ~/.config/nvim/init.lua
~/.config/nvim/lua/plugins/*.lua
  

基本的なプラグイン定義の例:

    -- ~/.config/nvim/lua/plugins/example.lua
return {
  "author/plugin-name",
  event = "VeryLazy",  -- 遅延読み込みのトリガー
  dependencies = {
    "dependency/plugin",
  },
  config = function()
    require("plugin-name").setup({
      -- オプション
    })
  end,
}
  

🔍 チェックポイント: 以下を確認する

  • テーブル末尾のカンマ
  • 括弧の対応
  • 文字列のクォート

ステップ4: 遅延読み込み設定を確認する

遅延読み込みを設定している場合、トリガー条件を確認する。

設定 説明
event イベント発生時に読み込み "BufReadPre", "VeryLazy"
cmd コマンド実行時に読み込み "Telescope"
ft ファイルタイプで読み込み "lua", "python"
keys キーマップ実行時に読み込み "<leader>ff"
    -- 即座に読み込みたい場合は lazy = false を指定
return {
  "author/plugin-name",
  lazy = false,
  priority = 1000,  -- 読み込み順序を指定(数字が大きいほど先)
}
  

🔍 チェックポイント: lazy = false を一時的に設定して動作するか確認

ステップ5: 依存関係を確認する

依存プラグインがある場合は dependencies に記載する。

    return {
  "nvim-telescope/telescope.nvim",
  dependencies = {
    "nvim-lua/plenary.nvim",  -- 必須の依存
    "nvim-tree/nvim-web-devicons",  -- アイコン表示用
  },
}
  

🔍 チェックポイント: :Lazy で依存プラグインもインストール済みか確認

ステップ6: config関数のエラーを確認する

起動時のエラーメッセージを確認する。

    :messages
  

または、Neovimを以下のように起動してエラーを確認する。

    nvim --startuptime startup.log
cat startup.log | grep -i error
  

🔍 チェックポイント: 特定のプラグイン読み込み時にエラーが発生していないか確認

NG行動(やってはいけないこと)

  • エラーを確認せずに設定を変更する - 問題の原因が特定できなくなる
  • 複数のプラグインを同時に追加・変更する - どの変更が問題か分からなくなる
  • ~/.local/share/nvim/lazy/ を手動で削除する - :Lazy clean を使用する
  • 古い packer.nvim の構文をそのまま使う - lazy.nvim は構文が異なる

よくある質問(FAQ)

Q1: :Lazy が動作しない場合は?

A: lazy.nvim自体のブートストラップ設定を確認する。init.lua の先頭に以下があるか確認:

    local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable",
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)
  

Q2: 特定のプラグインだけ読み込み直したい場合は?

A: :Lazy reload plugin-name を実行する。全体を再読み込みする場合は :Lazy sync

Q3: プラグインの設定が反映されているか確認するには?

A: 以下のコマンドで読み込み済みプラグインを確認:

    :lua print(vim.inspect(require("lazy").plugins()))
  

関連するトラブル

準備中

解決しない場合

  • lazy.nvim 公式ドキュメント: https://github.com/folke/lazy.nvim
  • :help lazy.nvim でヘルプを参照
  • 確認すべきログ: ~/.local/state/nvim/lazy/log
  • 次に調べるキーワード: 「lazy.nvim config not working」「neovim plugin load order」