症状
Neovim起動時に Error detected while processing や E5113 などのLua構文エラーが表示される
結論:まずこれを確認
- エラーメッセージの行番号を確認する
luacheckまたはluaコマンドで構文チェックを実行する- 該当行の括弧・カンマ・クォートの対応を確認する
操作フロー
flowchart TD
A[Neovim起動時にエラー] --> B{エラーメッセージに行番号あり?}
B -->|Yes| C[該当行を確認]
B -->|No| D[luacheckで全体チェック]
C --> E{括弧/カンマ/クォート}
E -->|不一致| F[対応を修正]
E -->|問題なし| G[前後の行も確認]
D --> H[エラー箇所を特定]
F --> I[Neovim再起動で確認]
G --> I
H --> C
よくある原因
- 括弧の閉じ忘れ -
{([に対応する閉じ括弧がない - カンマの過不足 - テーブル定義の最後に余分なカンマ、または途中でカンマ漏れ
- クォートの不一致 -
'と"の混在、または閉じ忘れ - 予約語の誤使用 -
endlocalfunctionなどの位置が不正 - インデントの問題 - コピペ時にタブとスペースが混在
- マルチバイト文字 - 全角スペースや全角括弧の混入
- プラグイン設定の書式ミス - 各プラグインが期待する形式と異なる
操作手順
ステップ1: エラーメッセージを確認する
Neovim起動時に表示されるエラーを確認する。
Error detected while processing /home/user/.config/nvim/init.lua:
E5113: Error while calling lua chunk: /home/user/.config/nvim/init.lua:42: '}' expected near 'vim'
🔍 チェックポイント: init.lua:42 のように行番号が表示されていれば、その行を中心に確認
ステップ2: 構文チェックツールで検証する
ターミナルで構文チェックを実行する。
# luaがインストールされている場合
lua -e "loadfile('~/.config/nvim/init.lua')()"
# luacheckがインストールされている場合(より詳細)
luacheck ~/.config/nvim/init.lua
🔍 チェックポイント: エラーがなければ何も出力されない
ステップ3: 該当行と前後を確認する
エラー行を開いて確認する。
# 行番号付きで表示(42行目周辺を確認する例)
sed -n '38,46p' ~/.config/nvim/init.lua | cat -n
または別のエディタで開く。
# VSCodeで開く
code ~/.config/nvim/init.lua
# 別のNeovimセッション(最小設定で起動)
nvim -u NONE ~/.config/nvim/init.lua
🔍 チェックポイント: 括弧のハイライトやインデントの乱れを確認
ステップ4: よくあるパターンを修正する
括弧の対応ミス:
-- NG: 閉じ括弧がない
vim.opt.completeopt = { "menu", "menuone", "noselect"
-- OK
vim.opt.completeopt = { "menu", "menuone", "noselect" }
カンマの問題:
-- NG: 最後の要素の後にカンマがない(次の行がある場合)
local opts = {
noremap = true
silent = true -- ここでエラー
}
-- OK
local opts = {
noremap = true,
silent = true,
}
クォートの不一致:
-- NG: 開始と終了が異なる
vim.cmd('colorscheme gruvbox")
-- OK
vim.cmd('colorscheme gruvbox')
🔍 チェックポイント: 修正後、:source % または Neovim再起動でエラーが消えるか確認
ステップ5: Neovimの健全性チェックを実行する
Neovimが起動できる場合、内部診断を実行する。
:checkhealth
🔍 チェックポイント: ERROR や WARNING の項目を確認
ステップ6: 設定を分割して問題箇所を特定する
エラー箇所が特定できない場合、設定を一時的にコメントアウトする。
-- 問題の切り分け:ブロック単位でコメントアウト
--[[
vim.opt.number = true
vim.opt.relativenumber = true
-- ... 省略
]]--
🔍 チェックポイント: コメントアウトでエラーが消えた範囲に原因がある
NG行動
- エラーを無視して使い続ける - 他の設定も読み込まれない可能性がある
- init.lua全体を削除する - 必要な設定まで消える、バックアップを取ってから作業する
- ネットからコピペしてそのまま使う - Neovimのバージョンやプラグインの違いでエラーになる
- 全角スペースでインデントする - 構文エラーの原因になる
よくある質問(FAQ)
Q1: エラーが出るがNeovimは起動する場合は?
A: init.lua の途中でエラーが発生し、それ以降の設定が読み込まれていない状態。エラー行より後の設定(キーマップ、プラグインなど)は機能していない可能性がある。
Q2: プラグインマネージャー(lazy.nvim等)導入後にエラーが出る場合は?
A: プラグインの設定記法がマネージャーごとに異なる。公式ドキュメントの書式を確認する。lua/plugins/ 配下のファイルも構文チェック対象。
Q3: 複数ファイルに分割している場合、どこがエラー?
A: エラーメッセージのパスを確認する。require で読み込んでいるファイル(lua/ ディレクトリ配下)がエラー元の場合もある。
関連するトラブル
準備中
解決しない場合
- 公式ドキュメント: https://neovim.io/doc/user/lua.html
- Lua 5.1 リファレンス: https://www.lua.org/manual/5.1/
- 確認すべきファイル:
~/.config/nvim/init.lua~/.config/nvim/lua/配下の全.luaファイル
- 次に調べるキーワード: 「Neovim lua syntax error」「neovim E5113」「luacheck install」