2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

claudecode.nvimのおすすめ設定

WezTerm + Neovim環境でClaude Codeを使う際、
Neovim内で直接連携できるclaudecode.nvimが便利だったので、いくつか調整したポイントを紹介します。

前提環境

カテゴリ ツール バージョン
エディタ Neovim (LazyVim) v0.11.2
ターミナル WezTerm 20251014

WezTermでNeovimを開き、別paneでClaude Codeを起動する構成です。

設定例

記事で紹介する内容を反映した、完全な設定ファイルです。

lua/plugins/claudecode.lua(クリックで展開)
-- lua/plugins/claudecode.lua
return {
  "coder/claudecode.nvim",
  dependencies = { "folke/snacks.nvim" },
  lazy = false,
  priority = 1000,
  opts = {
    -- Claude Code CLIのパス(環境に合わせて変更)
    terminal_cmd = "/path/to/claude --ide",
    auto_start = true,

    -- ターミナル設定
    terminal = {
      provider = "none",  -- 外部ターミナル運用(WezTermで手動起動)
    },

    -- diff表示設定
    diff_opts = {
      open_in_new_tab = true,  -- 新規タブでdiffを開く
    },
  },

  -- キーバインド
  keys = {
    -- バッファ送信
    { "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer to Claude" },

    -- 選択範囲送信
    { "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send selection to Claude" },

    -- oil.nvim連携
    {
      "<leader>at",
      "<cmd>ClaudeCodeTreeAdd<cr>",
      desc = "Add file from tree explorer",
      ft = { "oil" },
    },
  },
}

調整したポイント

WezTermとNeovimの構成
WezTerm内でNeovimとClaude Codeを並べて使用する構成

1) ターミナル問題: terminal.provider = "none"

claudecode.nvimがNeovim内でターミナルでClaude Codeを起動すると、長いレスポンスで動作が重くなることがありました。
そこで、WezTermの別PaneでClaude Codeを開くようにしました。
下記のようにprovidernoneに設定することで、claudecode.nvim側でターミナル管理を無効化できます。

terminal = {
  provider = "none",  -- ターミナル管理を無効化
},

これでClaude CodeはWezTermの別Pane側で起動し、
WebSocket経由で自動接続されるようです。
ターミナル設定の改善
外部ターミナル運用に切り替えることで、動作がスムーズになった

2) diff表示問題: open_in_new_tab = true

diffが既存バッファに割り込むと、ファイルの表示が崩れてしまうことがありました。
そこでdiff表示をNeovimの別タブで開くように設定しました。

diff_opts = {
  open_in_new_tab = true,            -- 新規タブでdiff
},

これで作業中のバッファを汚さず、タブ切り替えだけで比較できるようになった。

diffを新規タブで表示
diffが新規タブで開かれ、元の作業バッファは保持される

お気に入りキーバインド2選

Claudeと特定のファイル・範囲を指して議論するのに便利なキーバインドです。

<leader>ab - バッファ送信

開いているバッファをClaude Codeに送信。

バッファ送信の様子

{ "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", desc = "Add current buffer to Claude" },

<leader>as - 選択範囲送信

選択した範囲だけ送信(細かい指示向き)。

選択範囲送信の様子

{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send selection to Claude" },

oil.nvimとの連携

ファイルエクスプローラーとしてoil.nvimを使っています。
oil.nvimは、バッファをファイルエクスプローラーとして扱えるNeovimプラグインです。
ファイルやディレクトリをテキストのように操作できるのでとても気に入っています。

このoilとの連携もclaudecode.nvimはオプションを用意しており、
下記のように設定することで、 oilのカーソル上のファイルやディレクトリのPathがClaudeに送られます。

{
  "<leader>at",
  "<cmd>ClaudeCodeTreeAdd<cr>",
  desc = "Add file from tree explorer",
  ft = { "oil" },
},

oil.nvimでファイルを選択した状態で<leader>atを押すと、そのファイルパスをClaude Codeに送信できます。

oil.nvim連携の様子

ディレクトリ構造などについて、ファイルツリーの状態でClaudeと対話できるのがなかなか便利。

なぜNeovim + WezTermなのか

VSCodeやCursorなどのIDEではなく、Neovim + WezTermの組み合わせを使っている理由は、WezTermのcopy modeの存在が大きいです。

copy modeを使うと、Claudeの長い出力を遡ったり、必要な部分をコピーしたりする操作を、すべてキーボードだけで完結できます。

WezTermのcopy mode
copy modeでClaude出力をキーボードだけでスクロール・コピーできる

マウスに手を伸ばす必要がないため、思考を中断せずにコードレビューや調査を続けられます。ターミナルベースの環境だからこそ、AI出力の扱いもエディタ操作と同じキーバインドで統一でき、ワークフローが途切れません。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?