ガイド

Claude Code nvim完全ガイド【2026年最新】:プラグイン比較・インストール・tmux連携まで

室谷東吾
監修者室谷東吾(@0x__tom

株式会社MYUUU 代表取締役 / 日本最大級AIコミュニティ「.AI」創設者(累計2,000名超)/ セプテーニ・ホールディングス(電通グループ)と資本業務提携 / 著書「お金を使わず、AIを働かせる『Dify』活用」(ぱる出版、3刷)/ Xフォロワー約2万人

テキトー教師
監修者テキトー教師(@tekitoo_T_cher

.AI 認定講師 / 教育×AIの専門家 / 累計300名以上にAI活用を指導 / 「テキトーに学ぶ」がモットーの実践派講師 / Xアカウント

Claude Code nvim完全ガイド【2026年最新】:プラグイン比較・インストール・tmux連携まで

Claude CodeをNeovimで使う完全ガイド【2026年最新】:プラグイン比較・インストール・tmux連携まで

室谷室谷
今回はNeovimユーザーのためのClaude Code活用について話しましょう。.AI(ドットエーアイ)コミュニティでも「VS CodeじゃなくてNeovimを使っているんですが、Claude Codeって使えますか?」という質問が定期的に来るんですよね・・・
テキトー教師テキトー教師
講座でも同じです。「Vimmerだから諦めていたんですが」って言う受講生さん、実は結構いますよ。

でも実態は全然そんなことなくて、2026年時点でNeovimのClaude Code環境はかなり整っています。
室谷室谷
そうなんですよね。ターミナルをメインで使っている人にとっては、ある意味VS Codeより自由度が高いんです。

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ユーザーが取れる選択肢を整理するとこうなります。
  1. プラグインなし:NeovimのターミナルバッファからCLIで直接使う
  2. greggh/claude-code.nvim:ターミナル統合に特化したシンプルなプラグイン
  3. coder/claudecode.nvim:VS Codeと同等のIDE統合を実現したプラグイン
室谷室谷
この3択の中でどれを選ぶかは、使い方によりますね。tmuxをメインに使っている人、Neovimの中で完結させたい人、VS Codeライクな体験を求める人、それぞれ答えが変わります。

2大プラグインの比較:greggh vs coder

coder/claudecode.nvim - NeovimのClaude Code IDE統合プラグイン(GitHubより)

室谷室谷
まず2つのプラグインを比較しましょう。どちらもGitHubで2,000スター以上ついているので、どちらを選んでも「マイナーすぎて情報がない」という事態にはなりません。
テキトー教師テキトー教師
一言で言うと、greggh版は「シンプルで扱いやすい」、coder版は「機能が豊富だけど設定が少し多い」という感じです。講座でどちらを教えるか正直迷ったんですが、今はcoder版を最初に紹介するようにしています。
室谷室谷
その理由は?
テキトー教師テキトー教師
VS Codeの公式拡張と同等のプロトコルを実装していて、「diffをNeovimのネイティブdiff viewで確認して承認/却下できる」という機能がある。これがコードレビューのフローを大きく変えるんですよ。

Claude Codeが変更を提案したとき、差分を左右で並べて確認できます。
室谷室谷
そのためにAnthropicのVS Code拡張のプロトコルをリバースエンジニアリングして実装したんですよね・・・すごい話で。
テキトー教師テキトー教師
WebSocketベースのMCPプロトコルを完全に再現しています。Claude Code CLIが起動すると、このプラグインが立ち上げているWebSocketサーバーに自動接続して、「現在のカーソル位置」「選択中のテキスト」「開いているファイル」をリアルタイムでClaude側に伝えます。
室谷室谷
つまりClaude側からすると、VS Code使っているのかNeovim使っているのか区別がつかないぐらい、同じ情報が渡されているわけですね。
テキトー教師テキトー教師
その通りです。一方のgreggh版は、このプロトコル実装はなくて、「ターミナルウィンドウのトグル」「ファイルの自動リロード」「キーマップの設定」に特化しています。

依存関係が plenary.nvim だけで、設定がシンプルです。

主要な違いをまとめます。

比較項目greggh/claude-code.nvimcoder/claudecode.nvim
GitHubスター約2,000約2,500
必要Neovimバージョン0.7.0以上0.8.0以上
依存プラグインplenary.nvimfolke/snacks.nvim
WebSocket/MCPプロトコルなしあり(VS Code互換)
ファイル自動リロードありあり
ネイティブdiff viewなしあり
選択テキストをClaudeに送信なしあり
フローティングウィンドウありあり
設定の複雑さシンプル中程度
室谷室谷
diff viewの有無が一番大きい差ですね。MYUUUのエンジニアに聞いても「diffを確認しながら承認できるかどうかが体験として全然違う」って言います。
テキトー教師テキトー教師
コミュニティのメンバーさんにも「Claudeが何を変えたか確認してからaccept/denyしたい」というニーズは多いです。そういう方にはcoder版を強くおすすめします。

coder/claudecode.nvimのインストールと設定

claudecode.nvimの仕組み:NeovimとClaude Code CLIがWebSocketサーバー経由でリアルタイム通信する構成図

インストール手順(lazy.nvim)

室谷室谷
では具体的なインストール手順に入りましょう。2026年現在、Neovimユーザーの多数派はlazy.nvimを使っていると思うので、それ前提で説明します。
テキトー教師テキトー教師
まず前提として、Claude Code CLIがインストールされていることが必要です。Neovim 0.8.0以上も必要です。

あとは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 コマンドでインストール状態の確認もできます。

主要なコマンド一覧

室谷室谷
使えるコマンドをまとめておきましょう。これを見るだけで何ができるか把握できます。
コマンド説明
:ClaudeCodeClaude Codeターミナルのトグル
:ClaudeCodeFocusClaudeターミナルへのフォーカス切り替え
:ClaudeCodeSendビジュアル選択をClaudeに送信
:ClaudeCodeAdd <path>指定ファイルをClaudeのコンテキストに追加
:ClaudeCodeDiffAcceptClaudeの変更提案を承認
:ClaudeCodeDiffDenyClaudeの変更提案を却下
: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.loopuv.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の使い方と自然に合っています。
テキトー教師テキトー教師
プラグインの選び方は「どれだけVS Codeライクな体験が欲しいか」で決まります。diffを確認しながら承認したい、選択テキストをそのままClaudeに送りたい、という方はcoder/claudecode.nvimを選んでください。
室谷室谷
シンプルさを重視するならgreggh/claude-code.nvim、またはtmuxで3ペイン構成を作るのも全然ありですね。エンジニアのスタイルはそれぞれなので、自分のワークフローに合った形を選んでほしいです。
テキトー教師テキトー教師
一番大事なのは、プラグインを入れたらすぐ本番で使い始めることです。設定を完璧にしてから使おうとすると、いつまでも使い始められない。

まず config = true で動かして、使いながら調整していくのが一番早いです。
室谷室谷
その通りで。Claude Code自体もどんどんアップデートされていますし、プラグインも活発にメンテナンスされています。

最新の変更は各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が向いています。

Q: Windows環境でも使えますか?

室谷室谷
WSL(Windows Subsystem for Linux)経由であれば使えます。Claude Code CLI自体がWSLに対応していて、NeovimもWSLで動かせるので、Linux環境と同じ手順でセットアップできます。

出典

.AI TIMES一覧に戻る