Claude CodeをNeovimで使う完全ガイド【2026年最新】:プラグイン比較・インストール・tmux連携まで
室谷今回はNeovimユーザーのためのClaude Code活用について話しましょう。.AI(ドットエーアイ)コミュニティでも「VS CodeじゃなくてNeovimを使っているんですが、Claude Codeって使えますか?」という質問が定期的に来るんですよね・・・
テキトー教師講座でも同じです。「Vimmerだから諦めていたんですが」って言う受講生さん、実は結構いますよ。
でも実態は全然そんなことなくて、2026年時点でNeovimのClaude Code環境はかなり整っています。
でも実態は全然そんなことなくて、2026年時点でNeovimのClaude Code環境はかなり整っています。
室谷そうなんですよね。ターミナルをメインで使っている人にとっては、ある意味VS Codeより自由度が高いんです。
Claude Code自体がCLIツールなので、NeovimのエコシステムとCLIの組み合わせは非常に相性がいいです。
Claude Code自体がCLIツールなので、NeovimのエコシステムとCLIの組み合わせは非常に相性がいいです。
テキトー教師Anthropic公式はVS CodeとJetBrainsのIDEサポートを提供していますが、Neovimに関しては今のところコミュニティ製プラグインが充実した状態です。実際、この分野では2つの主要プラグインが存在していて、どちらも実用レベルに達しています。
室谷今回はその2つを中心に「どっちを選ぶか」「どうインストールするか」「tmuxと組み合わせた実際のワークフロー」まで全部カバーしていきましょう。
Neovimでのはじめ方:まず知っておくべきこと
室谷前提として、Claude CodeはCLIツールなので、プラグインなしでもNeovimのターミナルから直接使えるんですよね。そこは誤解されている方が多い。
テキトー教師そうですね。
プラグインは「より快適に使うためのもの」であって、必須ではないです。
:terminal でNeovimの中にターミナルを開いて claude コマンドを打てば、それだけでClaude Codeは動きます。プラグインは「より快適に使うためのもの」であって、必須ではないです。
室谷ただ、プラグインを入れると体験が全然変わりますね。特に「Claude Codeがファイルを変更したとき、Neovimのバッファを自動リロードする」という機能。
これがないと毎回手動で
これがないと毎回手動で
:e しなきゃいけない。
テキトー教師それが地味に一番ストレスになるポイントですよね。Claude Codeが黙々とファイルを書き換えてくれているのに、Neovim側のバッファが古いままになる。
プラグインの自動リロード機能があると、これが解消されます。
プラグインの自動リロード機能があると、これが解消されます。
室谷あとは「Neovim内で選択したコードをClaudeにそのまま送る」とか「差分をネイティブのdiff viewで確認・承認する」とか、そういった連携が深くなっていきます。
テキトー教師Neovimユーザーが取れる選択肢を整理するとこうなります。
- プラグインなし:NeovimのターミナルバッファからCLIで直接使う
- greggh/claude-code.nvim:ターミナル統合に特化したシンプルなプラグイン
- coder/claudecode.nvim:VS Codeと同等のIDE統合を実現したプラグイン
室谷この3択の中でどれを選ぶかは、使い方によりますね。tmuxをメインに使っている人、Neovimの中で完結させたい人、VS Codeライクな体験を求める人、それぞれ答えが変わります。
2大プラグインの比較:greggh vs coder

室谷まず2つのプラグインを比較しましょう。どちらもGitHubで2,000スター以上ついているので、どちらを選んでも「マイナーすぎて情報がない」という事態にはなりません。
テキトー教師一言で言うと、greggh版は「シンプルで扱いやすい」、coder版は「機能が豊富だけど設定が少し多い」という感じです。講座でどちらを教えるか正直迷ったんですが、今はcoder版を最初に紹介するようにしています。
室谷その理由は?
テキトー教師VS Codeの公式拡張と同等のプロトコルを実装していて、「diffをNeovimのネイティブdiff viewで確認して承認/却下できる」という機能がある。これがコードレビューのフローを大きく変えるんですよ。
Claude Codeが変更を提案したとき、差分を左右で並べて確認できます。
Claude Codeが変更を提案したとき、差分を左右で並べて確認できます。
室谷そのためにAnthropicのVS Code拡張のプロトコルをリバースエンジニアリングして実装したんですよね・・・すごい話で。
テキトー教師WebSocketベースのMCPプロトコルを完全に再現しています。Claude Code CLIが起動すると、このプラグインが立ち上げているWebSocketサーバーに自動接続して、「現在のカーソル位置」「選択中のテキスト」「開いているファイル」をリアルタイムでClaude側に伝えます。
室谷つまりClaude側からすると、VS Code使っているのかNeovim使っているのか区別がつかないぐらい、同じ情報が渡されているわけですね。
テキトー教師その通りです。一方のgreggh版は、このプロトコル実装はなくて、「ターミナルウィンドウのトグル」「ファイルの自動リロード」「キーマップの設定」に特化しています。
依存関係が
依存関係が
plenary.nvim だけで、設定がシンプルです。主要な違いをまとめます。
| 比較項目 | greggh/claude-code.nvim | coder/claudecode.nvim |
|---|---|---|
| GitHubスター | 約2,000 | 約2,500 |
| 必要Neovimバージョン | 0.7.0以上 | 0.8.0以上 |
| 依存プラグイン | plenary.nvim | folke/snacks.nvim |
| WebSocket/MCPプロトコル | なし | あり(VS Code互換) |
| ファイル自動リロード | あり | あり |
| ネイティブdiff view | なし | あり |
| 選択テキストをClaudeに送信 | なし | あり |
| フローティングウィンドウ | あり | あり |
| 設定の複雑さ | シンプル | 中程度 |
室谷diff viewの有無が一番大きい差ですね。MYUUUのエンジニアに聞いても「diffを確認しながら承認できるかどうかが体験として全然違う」って言います。
テキトー教師コミュニティのメンバーさんにも「Claudeが何を変えたか確認してからaccept/denyしたい」というニーズは多いです。そういう方にはcoder版を強くおすすめします。
coder/claudecode.nvimのインストールと設定

インストール手順(lazy.nvim)
室谷では具体的なインストール手順に入りましょう。2026年現在、Neovimユーザーの多数派はlazy.nvimを使っていると思うので、それ前提で説明します。
テキトー教師まず前提として、Claude Code CLIがインストールされていることが必要です。Neovim 0.8.0以上も必要です。
あとはlazy.nvimの設定ファイルに以下を追加するだけです。
あとはlazy.nvimの設定ファイルに以下を追加するだけです。
{
"coder/claudecode.nvim",
dependencies = { "folke/snacks.nvim" },
config = true,
keys = {
{ "<leader>a", nil, desc = "AI/Claude Code" },
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
{ "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
{ "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
{ "<leader>am", "<cmd>ClaudeCodeSelectModel<cr>", desc = "Select Claude model" },
{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer" },
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
},
}
室谷config = true だけで自動的に全部設定してくれるのがいいですね。最低限これだけあれば動きます。
テキトー教師:ClaudeCode を実行するとターミナルが開いてClaude Codeが起動します。同時にWebSocketサーバーも立ち上がって、Claude CLIと自動接続します。ローカルインストールへの対応
室谷一つ注意点があって、Claude Codeを
claude migrate-installer コマンドでローカルインストール(~/.claude/local/ 配下)に移行した場合は、追加設定が必要です。
テキトー教師これにハマる人が多いです。グローバルnpmでインストールしていれば
which claude が /usr/local/bin/claude 等を返しますが、ローカルインストールだとシェルのエイリアス経由になっていて、Neovimからは見えないことがあります。
室谷その場合は
terminal_cmd オプションで直接パスを指定します。{
"coder/claudecode.nvim",
dependencies = { "folke/snacks.nvim" },
opts = {
terminal_cmd = "~/.claude/local/claude",
},
config = true,
}
テキトー教師which claude の出力を確認して、それをそのまま terminal_cmd に入れればOKです。claude doctor コマンドでインストール状態の確認もできます。主要なコマンド一覧
室谷使えるコマンドをまとめておきましょう。これを見るだけで何ができるか把握できます。
| コマンド | 説明 |
|---|---|
:ClaudeCode | Claude Codeターミナルのトグル |
:ClaudeCodeFocus | Claudeターミナルへのフォーカス切り替え |
:ClaudeCodeSend | ビジュアル選択をClaudeに送信 |
:ClaudeCodeAdd <path> | 指定ファイルをClaudeのコンテキストに追加 |
:ClaudeCodeDiffAccept | Claudeの変更提案を承認 |
:ClaudeCodeDiffDeny | Claudeの変更提案を却下 |
:ClaudeCodeSelectModel | 使用するClaudeモデルの選択 |
:ClaudeCode --resume | 過去の会話を選択して再開 |
:ClaudeCode --continue | 直近の会話を継続 |
テキトー教師特に
「このコード修正して」「このロジック説明して」という使い方がスムーズにできます。
:ClaudeCodeSend は実践で使いまくります。Neovimでコードを選択してこのコマンドを呼ぶと、その選択範囲がそのままClaudeのプロンプトに入ります。「このコード修正して」「このロジック説明して」という使い方がスムーズにできます。
greggh/claude-code.nvimのインストールと設定
室谷シンプル重視の方向けに、greggh版もカバーしておきましょう。こちらはNeovim 0.7.0以上に対応しています。
テキトー教師こちらも依存関係が
plenary.nvim だけなので、すでに他のプラグインで使っている方が多いと思います。追加インストールが不要なケースも多いです。lazy.nvimでのインストール
return {
"greggh/claude-code.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
require("claude-code").setup()
end
}
室谷デフォルト設定のままでも動きますが、カスタマイズするとより使いやすくなります。
主要な設定オプション
テキトー教師よく使う設定オプションを紹介します。
require("claude-code").setup({
-- ウィンドウの設定
window = {
split_ratio = 0.3, -- 画面に占める割合(0〜1)
position = "botright", -- "botright", "topleft", "vertical", "float"
enter_insert = true, -- 開いたらすぐinsertモードに入る
hide_numbers = true, -- ターミナルで行番号を非表示
},
-- ファイル変更の自動検出
refresh = {
enable = true,
updatetime = 100, -- ファイル変更検出の応答速度(ミリ秒)
timer_interval = 1000, -- チェック間隔(ミリ秒)
show_notifications = true,
},
-- Git設定
git = {
use_git_root = true, -- Gitルートをカレントディレクトリとして使用
},
-- キーマップ
keymaps = {
toggle = {
normal = "<C-,>",
terminal = "<C-,>",
variants = {
continue = "<leader>cC",
verbose = "<leader>cV",
},
},
}
})
室谷window.position = "float" にするとフローティングウィンドウになるんですよね。これが地味に便利で。
テキトー教師はい。コード編集中にClaudeをフローティングで呼び出して、使い終わったらトグルで消す。
この動作が
この動作が
<C-,> 一発でできます。エディタを占領しないので作業の邪魔にならないです。フローティングウィンドウの設定はこうなります。
require("claude-code").setup({
window = {
position = "float",
float = {
width = "80%",
height = "80%",
row = "center",
col = "center",
relative = "editor",
border = "rounded",
},
},
})
室谷サイズを
"80%" にしておくと十分な作業スペースが確保できますね。MYUUUのエンジニアがフローティング派とスプリット派で分かれていて、これは完全に好みの問題です。tmuxとNeovimを組み合わせたワークフロー
室谷プラグインを使わないアプローチとして、tmuxとNeovimの組み合わせも紹介しておきたいです。Daniel Miesslerという海外エンジニアが「CursorをNeovim + Claude Codeで置き換えた」という記事を書いていて、かなり話題になりました。
テキトー教師3ペイン構成ですよね。Claude Codeを左、Neovimを右、シェルを下に配置する。
室谷そうです。Ghosttyというターミナルエミュレータを使って、こういうレイアウトを作っています。
┌──────────────────┬──────────────────┐
│ │ │
│ Claude Code │ Neovim │
│ (claude CLI) │ (コードを開く) │
│ │ │
├──────────────────┴──────────────────┤
│ Shell │
└─────────────────────────────────────┘
テキトー教師Ghosttyのキーバインド設定で
Ctrl+H/J/K/L でペイン間を移動できるようにするわけです。まさにVimキーバインドをターミナル全体に適用した感じですね。
室谷この構成の良いところは「Claude Code側からNeovimのファイルを直接編集できる」という点です。Claude Codeがコードを書き換えると、Neovim側のバッファも(自動リロードを設定していれば)リアルタイムで更新されます。
テキトー教師ただしこの場合、ファイルの自動リロードをNeovim側で別途設定する必要があります。先ほど紹介したプラグインを入れていれば自動でやってくれますが、プラグインなしで使う場合は以下のautocommandを入れる必要があります。
-- init.luaに追加
vim.opt.autoread = true
vim.api.nvim_create_autocmd(
{ "FocusGained", "TermLeave", "BufEnter", "WinEnter", "CursorHold", "CursorHoldI" },
{
pattern = "*",
command = "checktime",
}
)
室谷これだけでもかなり改善されます。Claudeがファイルを変更したあと、ウィンドウをフォーカスし直すかカーソルを動かすだけでバッファが更新されるようになります。
テキトー教師さらに徹底したい場合は、ファイルシステムの変更を監視する設定も追加できます。xata.ioのエンジニアが書いた方法で、
vim.loop の uv.fs_event APIでカレントディレクトリを監視してリアルタイムリロードを実現しています。
室谷プラグインに頼らずに自分でカスタマイズしたい、そういうVimmerらしいアプローチもあるということで。どちらが「正解」というよりは、自分のスタイルに合ったものを選べばいいです。
実践的なTips:コンテキストの渡し方を工夫する
カーソル位置のコードをClaudeに伝える
テキトー教師コードを書いているときに「このファイルのこの関数を修正して」とClaudeに伝える場合、どうやってClaudeにコンテキストを渡すかが重要です。
室谷coder版を使っている場合は、ビジュアルモードで選択してから
:ClaudeCodeSend を呼ぶのが一番手軽ですね。選択範囲をそのままClaudeの入力に渡せます。
テキトー教師さらに
:ClaudeCodeAdd % でカレントファイル全体をコンテキストに追加できます。ファイルと行番号も含めて渡せるので、Claudeがファイルのどこの話をしているか正確に理解できるようになります。
室谷greggh版やプラグインなしの場合でも、ヤンク(コピー)のときにファイルパスを一緒に含める工夫ができます。例えばこういうキーマップを設定するといいです。
-- 相対パス付きでヤンク(Claude Codeに貼り付けるとファイルパスも伝わる)
vim.keymap.set("v", "<leader>yr", function()
local path = vim.fn.expand("%:.")
local lines = vim.fn.getline("'<", "'>")
local start_line = vim.fn.line("'<")
local content = path .. ":" .. start_line .. "\n" .. table.concat(lines, "\n")
vim.fn.setreg("+", content)
end, { desc = "Yank with relative path" })
テキトー教師これを実行すると
src/utils/helper.ts:23 のようなフォーマットでクリップボードにコピーされて、Claude Code側に貼り付けるだけでファイルの場所まで伝わります。地味に便利なTipsです。モデル切り替えをNeovim内で完結させる
室谷もう一つ実践的なTipsとして、coder版の
:ClaudeCodeSelectModel が便利です。使用するClaudeモデルを対話的に選択できます。
テキトー教師「今回は細かい修正だからSonnetで十分、大きなリファクタリングはOpusにしよう」という使い分けが、Neovim内で完結します。プロファイルを切り替える感覚で使えます。
室谷MYUUUでもエンジニアが用途に応じてモデルを使い分けています。コスト的にも、細かいコード補正はSonnetで十分なことが多いです。
lazy nvim claude codeの設定をチームで共有する
テキトー教師チームでNeovimを使っている場合、lazy.nvimの設定をdotfilesリポジトリで共有するのがおすすめです。claudecode.nvimの設定も一緒に管理できます。
室谷特に
terminal_cmd の設定はマシン依存になりがちなので、環境変数で切り替えられるようにしておくといいですね。{
"coder/claudecode.nvim",
dependencies = { "folke/snacks.nvim" },
opts = {
terminal_cmd = vim.env.CLAUDE_CMD or "claude",
},
config = true,
}
テキトー教師export CLAUDE_CMD=~/.claude/local/claude を .zshrc や .bashrc に書いておけば、マシンごとの差異を吸収できます。codecompanion.nvimとの使い分け
室谷claudecode.nvimとよく比較されるのが
codecompanion.nvim です。こちらはAnthropicのAPIを直接叩く系のプラグインで、使い方が違います。
テキトー教師codecompanion.nvimはAPIキーを設定してNeovim内で直接AIとチャットする仕組みで、Claude Code CLIとは別物です。Claude Codeの「ファイルシステムへのアクセス権限」「ツール実行」「セッション管理」といった機能を使いたいなら、claudecode.nvimが対象になります。
室谷「コードについて質問したい」だけならcodeccompanionでもいいですが、「実際にファイルを書き換えてほしい、コードを自律的に実装してほしい」という使い方ならClaude Code連携一択ですね。
テキトー教師この使い分けは講座でよく説明するポイントです。どちらも「AI」ではあるんですが、codecompanionが「チャットアシスタント」なら、claudecode.nvimは「コーディングエージェント」に近いです。
室谷海外エンジニアのコミュニティを見ていても、本格的な開発にはClaude Code CLIを使って、Neovimとの統合はclaudecode.nvimというパターンが増えてきています。avante.nvimも同様で、「Cursor風のUIが欲しい」か「エージェントとして自律的に動かしたい」かで選択肢が変わります。
よくある質問とトラブルシューティング
Claude Codeが起動しない
テキトー教師一番多いトラブルは「
:ClaudeCode を実行してもClaude Codeが起動しない」です。これはほぼ必ず terminal_cmd の設定問題です。
室谷ターミナルで
which claude を実行して、表示されたパスを terminal_cmd に設定してください。パスが表示されない場合はClaude Code CLIのインストールが必要です。# インストール確認
which claude
# Claude Codeのインストール(公式ドキュメントに従う)
# https://docs.anthropic.com/en/docs/claude-code
バッファが自動更新されない
テキトー教師もう一つよくある問題として「Claude Codeがファイルを変更したのに、Neovimのバッファが更新されない」があります。
室谷greggh版では
refresh.enable = true がデフォルトなので通常は問題ないはずです。それでも更新されない場合は vim.opt.autoread = true をinit.luaに追加してみてください。
テキトー教師coder版でファイルが更新されない場合も、
vim.opt.autoread = true とautocommandの設定を追加すると解決することが多いです。WebSocket接続エラー(coder版)
室谷coder版特有のトラブルとして、WebSocket接続のエラーがあります。ポート番号の競合が原因のことがほとんどです。
テキトー教師デフォルトのポートレンジを変更して解決できます。
opts = {
port_range = { min = 20000, max = 65535 },
}
室谷log_level = "debug" に変えてNeovimのメッセージ画面(:messages)を確認すると、接続状況が詳しくわかります。まとめ:Neovimでのベストな選択
室谷では今回のまとめです。Neovimユーザーにとって、Claude Codeは決して遠い存在ではない。
むしろCLIベースの設計は、ターミナル中心のVimmerの使い方と自然に合っています。
むしろCLIベースの設計は、ターミナル中心のVimmerの使い方と自然に合っています。
テキトー教師プラグインの選び方は「どれだけVS Codeライクな体験が欲しいか」で決まります。diffを確認しながら承認したい、選択テキストをそのままClaudeに送りたい、という方はcoder/claudecode.nvimを選んでください。
室谷シンプルさを重視するならgreggh/claude-code.nvim、またはtmuxで3ペイン構成を作るのも全然ありですね。エンジニアのスタイルはそれぞれなので、自分のワークフローに合った形を選んでほしいです。
テキトー教師一番大事なのは、プラグインを入れたらすぐ本番で使い始めることです。設定を完璧にしてから使おうとすると、いつまでも使い始められない。
まず
まず
config = true で動かして、使いながら調整していくのが一番早いです。
室谷その通りで。Claude Code自体もどんどんアップデートされていますし、プラグインも活発にメンテナンスされています。
最新の変更は各GitHubリポジトリのCHANGELOG.mdで確認できます。
最新の変更は各GitHubリポジトリのCHANGELOG.mdで確認できます。
テキトー教師.AIのコミュニティでもNeovimユーザーの方々と情報交換しています。「この設定が便利だった」「こんなキーマップにしている」という話は積極的に共有していきましょう。
室谷ということで今回はClaude Code nvim integrationについて徹底解説しました。次回もお楽しみに。
よくある質問(FAQ)
Q: Neovimのバージョンが0.7.x以下だと使えませんか?
テキトー教師greggh/claude-code.nvimはNeovim 0.7.0以上、coder/claudecode.nvimはNeovim 0.8.0以上が必要です。バージョンが古い場合はNeovimをアップデートすることをおすすめします。
Q: claude code for nvimは公式対応になる予定はありますか?
室谷2026年4月時点でAnthropicの公式サポートはVS CodeとJetBrainsのみです。ただし、coder/claudecode.nvimがVS Code拡張と同等のプロトコルを実装しているため、機能的にはほぼ同等の体験が得られます。
Q: avante.nvimとの違いは?
テキトー教師avante.nvimはClaude等のAIをNeovim内でCursor風のUIで使うプラグインで、APIを直接叩く仕組みです。Claude Code CLIと連携するclaudecode.nvimとは設計思想が異なります。
「エージェントとして自律的に動いてほしい」ならclaudecode.nvim、「Cursorライクな補完UIが欲しい」ならavante.nvimが向いています。
「エージェントとして自律的に動いてほしい」ならclaudecode.nvim、「Cursorライクな補完UIが欲しい」ならavante.nvimが向いています。
Q: Windows環境でも使えますか?
室谷WSL(Windows Subsystem for Linux)経由であれば使えます。Claude Code CLI自体がWSLに対応していて、NeovimもWSLで動かせるので、Linux環境と同じ手順でセットアップできます。
