Build This Now
Build This Now
キーボードショートカットステータスラインガイド
speedy_devvkoen_salo
Blog/Toolkit/Keyboard Shortcuts

キーボードショートカット

Claude Codeのkeybindings.jsonを設定する: 17のコンテキスト、キーストローク構文、コードシーケンス、修飾キーの組み合わせ、デフォルトショートカットを即座に無効化する方法。

設定をやめて、構築を始めよう。

AIオーケストレーション付きSaaSビルダーテンプレート。

Published Jan 25, 2026Toolkit hub

Claude Codeでカスタムキーボードショートカットを設定する。17のコンテキスト、キーストローク構文、keybindings.jsonの例をまとめたリファレンス。

筋肉記憶は Ctrl+K でコマンドパレットを開くと言っているが、Claude Codeは同意しない。使い慣れたショートカットに手を伸ばすたびに違うアクションが実行され、集中が途切れフローが壊れる。

この摩擦は積み重なる。Claude Codeのセッションで何時間も過ごす開発者は、キーボードショートカットに関して無意識の習慣を築く。デフォルトが自分のメンタルモデルと合わない場合、ツールを使うのではなくツールと戦うことになる。VS Code、Vim、Emacs、またはターミナル中心のワークフロー出身なら、すでに数年分のショートカットパターンが指に刻まれている。新しいものを覚えさせるのは認知コストの無駄だ。

Claude Codeはこの問題を完全にカスタマイズ可能なキーバインディングシステムで解決する。すべてのショートカットをコンテキスト別に整理された1つのJSONファイルで定義でき、コードシーケンス、修飾キーの組み合わせ、任意のデフォルト無効化をサポートする。変更は再起動なしで即座に反映される。設定方法と、Claude Codeを既存のワークフローの延長線上に感じさせる方法を説明する。

カスタムキーバインディングを始める

Claude Codeの中で /keybindings スラッシュコマンドを実行する。これにより ~/.claude/keybindings.json に設定ファイルが作成される(または開かれる)。Claude Codeの設定が初めての場合、このファイルは ~/.claude/ ディレクトリ内の他の設定ファイルと並んで配置される。

ファイル構造はシンプルだ:

{
  "$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
  "$docs": "https://code.claude.com/docs/en/keybindings",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor",
        "ctrl+u": null
      }
    }
  ]
}

3つのトップレベルフィールドがすべてを制御する:

  • $schema - オプション。ClaudeのJSON Schema URLを指定するとエディタが自動補完とバリデーションを提供する。追加する価値がある。
  • $docs - オプション。クイックリファレンス用のドキュメントURL。
  • bindings - すべてのカスタムショートカットが入る配列。各エントリは特定のコンテキストを対象とする。

$schema フィールドだけで設定が格段に楽になる。VS Codeや他のJSON Schemaサポートのあるエディタを使っていれば、すべての有効なアクションとコンテキスト名のインライン候補が表示される。

keybindings.json への変更は自動で検出され適用される。再起動は不要。編集して保存すれば新しいショートカットが即座に有効になる。

コンテキストの理解

すべてのバインディングはコンテキストに属し、そのショートカットがいつアクティブかをClaude Codeに伝える。Chat コンテキストにバインドされたショートカットは、メインのチャット入力に入力しているときだけ発火する。同じキーの組み合わせが異なるコンテキストで異なる動作をすることができる。

Claude Codeには17のコンテキストがある:

コンテキストアクティブになる場面
Globalアプリのどこでも
Chatメインチャット入力エリア
Autocompleteオートコンプリートメニューが開いている
Settings設定メニューが開いている
Confirmationパーミッションと確認ダイアログ
Tabsタブナビゲーションコンポーネント
Helpヘルプメニューが表示されている
Transcriptトランスクリプトビューアー
HistorySearch履歴検索モード (Ctrl+R)
Taskバックグラウンドタスクが実行中
ThemePickerテーマピッカーダイアログ
Attachments画像/添付ファイルバーのナビゲーション
Footerフッターインジケーターのナビゲーション
MessageSelector巻き戻しダイアログのメッセージ選択
DiffDialog差分ビューアーのナビゲーション
ModelPickerモデルピッカーの労力レベル
Select汎用選択/リストコンポーネント
Pluginプラグインダイアログ(ブラウズ、検索、管理)

Global コンテキストは特別だ。ここにあるバインディングは、どのダイアログやビューがアクティブかに関わらず、あらゆる場所で適用される。控えめに使う。Ctrl+K をグローバルにバインドすると、チャット中でも、オートコンプリートの候補を閲覧中でも、差分をレビュー中でも発火する。

完全なアクションリファレンス

アクションは namespace:action の命名形式に従う。各コンテキストで利用可能なすべてのアクションとデフォルトバインディングを以下に示す。

グローバルアクション

Claude Codeのどこでも動作する:

アクションデフォルト内容
app:interruptCtrl+C現在の操作をキャンセル
app:exitCtrl+DClaude Codeを終了
app:toggleTodosCtrl+Tタスクリストの表示切替
app:toggleTranscriptCtrl+O詳細トランスクリプトの切替

タスク管理機能を使う場合、app:toggleTodos は頻繁に使うアクションだ。Ctrl+T がターミナルと競合する場合はより使いやすいキーにバインドすることを検討する。

チャットアクション

最も多くの時間を費やすメインの入力エリア:

アクションデフォルト内容
chat:cancelEscape現在の入力をキャンセル
chat:cycleModeShift+Tabパーミッションモードを循環
chat:modelPickerCmd+P / Meta+Pモデルピッカーを開く
chat:thinkingToggleCmd+T / Meta+T拡張思考を切替
chat:submitEnterメッセージを送信
chat:undoCtrl+_最後の操作を元に戻す
chat:externalEditorCtrl+G外部エディタで開く
chat:stashCtrl+S現在のプロンプトをスタッシュ
chat:imagePasteCtrl+V (Windows では Alt+V)画像を貼り付け

注: chat:cycleMode は、VTモードなしのWindows(Node 24.2.0/22.17.0以前、またはBun 1.2.23以前)ではデフォルトで Meta+M になる。これはClaudeができることとできないことを制御するパーミッション管理と直接連動する。

履歴アクション

コマンド履歴をナビゲートする:

アクションデフォルト内容
history:searchCtrl+R履歴検索を開く
history:previousUp前の履歴アイテム
history:nextDown次の履歴アイテム

オートコンプリートアクション

オートコンプリートメニューが表示されたとき:

アクションデフォルト内容
autocomplete:acceptTab候補を承認
autocomplete:dismissEscapeメニューを閉じる
autocomplete:previousUp前の候補
autocomplete:nextDown次の候補

確認アクション

パーミッションと確認ダイアログ:

アクションデフォルト内容
confirm:yesY, Enterアクションを確認
confirm:noN, Escapeアクションを拒否
confirm:previousUp前のオプション
confirm:nextDown次のオプション
confirm:nextFieldTab次のフィールド
confirm:previousField(未割り当て)前のフィールド
confirm:cycleModeShift+Tabパーミッションモードを循環
confirm:toggleExplanationCtrl+Eパーミッション説明の切替
permission:toggleDebugCtrl+Dパーミッションデバッグ情報の切替

トランスクリプトアクション

アクションデフォルト内容
transcript:toggleShowAllCtrl+Eすべてのコンテンツ表示の切替
transcript:exitCtrl+C, Escapeトランスクリプトビューを終了

履歴検索アクション

アクションデフォルト内容
historySearch:nextCtrl+R次のマッチ
historySearch:acceptEscape, Tab選択を承認
historySearch:cancelCtrl+C検索をキャンセル
historySearch:executeEnter選択したコマンドを実行

タスクアクション

アクションデフォルト内容
task:backgroundCtrl+B現在のタスクをバックグラウンドに移動

テーマ、ヘルプ、設定アクション

アクションコンテキストデフォルト内容
theme:toggleSyntaxHighlightingThemePickerCtrl+Tシンタックスハイライトの切替
help:dismissHelpEscapeヘルプメニューを閉じる
settings:searchSettings/検索モードに入る
settings:retrySettingsR使用データの再読み込みを再試行

ナビゲーションアクション

タブ、添付ファイル、フッター、差分、モデルピッカー、セレクト、メッセージセレクターを網羅:

アクションコンテキストデフォルト内容
tabs:nextTabsTab, Right次のタブ
tabs:previousTabsShift+Tab, Left前のタブ
attachments:nextAttachmentsRight次の添付ファイル
attachments:previousAttachmentsLeft前の添付ファイル
attachments:removeAttachmentsBackspace, Delete添付ファイルを削除
attachments:exitAttachmentsDown, Escape添付ファイルバーを終了
footer:nextFooterRight次のフッターアイテム
footer:previousFooterLeft前のフッターアイテム
footer:openSelectedFooterEnter選択したアイテムを開く
footer:clearSelectionFooterEscape選択をクリア
messageSelector:upMessageSelectorUp, Kリストを上に移動
messageSelector:downMessageSelectorDown, Jリストを下に移動
messageSelector:topMessageSelectorCtrl+Up, Shift+Up先頭にジャンプ
messageSelector:bottomMessageSelectorCtrl+Down, Shift+Down末尾にジャンプ
messageSelector:selectMessageSelectorEnterメッセージを選択
diff:dismissDiffDialogEscape差分ビューアーを閉じる
diff:previousSourceDiffDialogLeft前の差分ソース
diff:nextSourceDiffDialogRight次の差分ソース
diff:previousFileDiffDialogUp前のファイル
diff:nextFileDiffDialogDown次のファイル
diff:viewDetailsDiffDialogEnter詳細を表示
modelPicker:decreaseEffortModelPickerLeft労力レベルを下げる
modelPicker:increaseEffortModelPickerRight労力レベルを上げる
select:nextSelectDown, J, Ctrl+N次のオプション
select:previousSelectUp, K, Ctrl+P前のオプション
select:acceptSelectEnter選択を承認
select:cancelSelectEscape選択をキャンセル
plugin:togglePluginSpaceプラグインを切替
plugin:installPluginIプラグインをインストール

キーストローク構文

Claude Codeはキーの組み合わせを定義するための読みやすい構文を使用する。

修飾キー

修飾キーは + で組み合わせる:

  • ctrl または control でControlキー
  • alt、opt、または option でAlt/Option
  • shift でShift
  • meta、cmd、または command でMeta/Command

例:

ctrl+k          Single modifier + key
shift+tab       Shift + Tab
meta+p          Command/Meta + P
ctrl+shift+c    Multiple modifiers

大文字とShift

単独の大文字はShiftを意味する。バインディングに K と書くことは shift+k と書くことと同じだ。これは j と J(または k と K)が異なる動作をするVimスタイルのバインディングで特に便利だ。

重要な点: 修飾キー付きの大文字はShiftを意味しない。ctrl+K は ctrl+k と同一だ。修飾キーが存在する場合、大文字は純粋にスタイル上のものとして扱われる。

コードシーケンス

コードを使うと複数キーのショートカットを作成できる。キーストロークをスペースで区切る:

ctrl+k ctrl+s Press Ctrl+K, release, then press Ctrl+S

これにより、ショートカットのための名前空間が大幅に広がる。単一キーの組み合わせが不足してきた場合、コードを使えば既存のバインディングと競合せずに数百の可能性が開ける。

特殊キー

非文字キーにはこれらの名前を使う:

  • escape または esc
  • enter または return
  • tab
  • space
  • up、down、left、right
  • backspace、delete

デフォルトショートカットの無効化

任意のアクションを null に設定することで無効化できる:

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+s": null
      }
    }
  ]
}

これはデフォルトショートカットがターミナル、OS、またはClaude Codeと並行して使用するツールと競合する場合に便利だ。デフォルトを無効化してから、同じキーを別のアクションに再バインドすることもできる。

予約済みショートカット

2つのショートカットはハードコードされており、再バインドできない:

ショートカット理由
Ctrl+Cハードコードされた割り込み/キャンセル
Ctrl+Dハードコードされた終了

これらを再バインドしようとしないこと。Claude Codeは受け付けない。Ctrl+C は割り込み、Ctrl+D は終了というUnixの慣習であり、すべてのターミナルユーザーが期待するものだ。

ターミナルマルチプレクサの競合

tmux、GNU screen、または他のマルチプレクサの中でClaude Codeを実行している場合、プレフィックスキーの競合に注意する:

ショートカット競合
Ctrl+Btmuxプレフィックス(通過させるには2回押す)
Ctrl+AGNU screenプレフィックス
Ctrl+ZUnixプロセスのサスペンド (SIGTSTP)

デフォルトの task:background アクションは Ctrl+B を使用しており、tmuxと直接競合する。tmuxユーザーであれば即座に再バインドする:

{
  "bindings": [
    {
      "context": "Task",
      "bindings": {
        "ctrl+b": null,
        "ctrl+shift+b": "task:background"
      }
    }
  ]
}

これはターミナルセッションのマルチプレクサの中でClaude Codeを実行する開発者にとって、最も一般的な混乱の原因の1つだ。

Vimモードとの相互作用

vimモードが有効な場合(/vim で切り替え)、キーバインディングとvimモードは異なるレイヤーで動作する:

  • Vimモードはテスト入力を制御する: カーソル移動、モード(INSERT、NORMAL)、モーション、テキストオブジェクト
  • キーバインディングはアプリケーションアクションを制御する: タスクリストの切替、メッセージの送信、モデルピッカーの開閉

重要な区別はEscapeキーだ。vimモードでは、EscapeはINSERTからNORMALモードへの切り替えをする。chat:cancel は発火しない。ほとんどの Ctrl+key ショートカットはvimモードを通過してキーバインディングシステムに届くため、NORMALモード中でも Ctrl+T でタスクリストを切り替えられる。

NORMALモードで ? を押すとヘルプメニューが表示される(標準的なvimの動作)。Claude Codeのヘルプではない。

プランニングモードを多用しvimモードも使う場合、chat:thinkingToggle をvimモーションと競合しないコードにバインドすることを検討する。vimモード、スラッシュコマンド、その他のインタラクティブ機能がどのように組み合わさるかの全体像については、インタラクティブモードガイドを参照する。

バリデーションと診断

Claude Codeはキーバインディングファイルを自動的にバリデーションし、以下について警告する:

  • JSON構文または構造のパースエラー
  • 17のサポートされるコンテキストと一致しない無効なコンテキスト名
  • Ctrl+CまたはCtrl+Dを再バインドしようとした場合の予約済みショートカットの競合
  • Ctrl+B、Ctrl+A、Ctrl+Zのターミナルマルチプレクサの競合
  • 同じコンテキスト内の重複バインディング

/doctor を実行するとすべてのキーバインディングの警告を一度に確認できる。ショートカットが期待通りに動作しない理由を診断する最も速い方法だ。

実用的な設定例

一般的な問題を解決する実際の設定例を示す。

VS Codeユーザー向け設定

VS Code出身で使い慣れたショートカットが欲しい場合:

{
  "$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+k ctrl+s": "chat:stash",
        "ctrl+shift+p": "chat:modelPicker",
        "ctrl+g": "chat:externalEditor"
      }
    },
    {
      "context": "Global",
      "bindings": {
        "ctrl+shift+t": "app:toggleTodos"
      }
    }
  ]
}

tmuxフレンドリーな設定

tmuxのプレフィックス競合をすべて回避する:

{
  "$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
  "bindings": [
    {
      "context": "Task",
      "bindings": {
        "ctrl+b": null,
        "ctrl+shift+b": "task:background"
      }
    }
  ]
}

最小限のディストラクション設定

誤って押してしまうショートカットを無効化する:

{
  "$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+s": null,
        "ctrl+u": null
      }
    }
  ]
}

コードベースのパワーユーザー設定

単一キーのコンボを節約しながら、頻度の低い機能にコードでアクセスする:

{
  "$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+k ctrl+t": "chat:thinkingToggle",
        "ctrl+k ctrl+m": "chat:modelPicker",
        "ctrl+k ctrl+e": "chat:externalEditor"
      }
    }
  ]
}

最も使用頻度の高い単一キーショートカットをクリーンに保ちながら、他のすべてに素早くアクセスできる。

自分の設定を構築する

小さく始めること。すべてを一度に再マッピングしようとしない。実用的なアプローチを示す:

  1. /keybindings を実行して設定ファイルを作成する
  2. 上位3つの問題点を特定する(競合するショートカット、不足しているショートカット、誤って発動するトリガー)
  3. まずそれを修正するピンポイントのバインディングで
  4. /doctor を実行してバリデーションする
  5. Claude Codeをフルセッションで使用し、残っている摩擦を記録する
  6. 必要に応じてバインディングを追加または調整してイテレートする

目標はすべてのショートカットをカスタマイズすることではない。筋肉記憶とClaude Codeの動作の間の摩擦をなくすことだ。ほとんどの開発者はわずか5〜10個のカスタムバインディングで完全に慣れ親しんだ感覚を得られる。ClaudeFastのCode Kitはスラッシュコマンドやフックと並んでキーバインディングフレンドリーなデフォルトを含む事前調整済みの settings.json とともに出荷されるため、ゼロから構築するのではなく堅実なベースラインから始められる。

より包括的なClaude Codeの設定を構築している場合、キーバインディングはCLAUDE.mdの設定やカスタムスラッシュコマンドと連携して完全にパーソナライズされた環境を作り出す。キーバインディングは物理的なインターフェースを担当し、設定ファイルは動作的なインターフェースを担当する。組み合わせることで、Claude Codeが自分のワークフローのために専用に作られたかのような感覚になる。

More in Toolkit

  • ステータスラインガイド
    Claude Code のステータスラインにモデル名、gitブランチ、セッションコスト、コンテキスト使用量を表示する方法。settings.json の設定、JSON入力、bash、Python、Node.js スクリプトを解説。
  • AIによるSEOとGEO最適化
    Generative Engine Optimizationの解説: Googleで上位表示されるだけでなく、ChatGPT、Claude、Perplexityの回答内でコンテンツが引用されるようにする方法。
  • 2026年版 Claude Code と Cursor の比較
    2026年の Claude Code と Cursor を並べて比較します。エージェントモデル、コンテキストウィンドウ、料金プラン、そして各ツールが異なる開発ワークフローにどう適合するかを解説します。
  • Claude Code VS Code拡張機能
    AnthropicのVS Code拡張機能は、Claude CodeをエディタサイドバーのSparkアイコンパネルとして組み込みます。インラインdiff、プランモード、サブエージェント、MCPサポートが利用できます。
  • Claude Codeのキーバインディング
    keybindings.jsonを通じてClaude Codeのショートカットを変更できます。17のコンテキスト、キーストローク構文、コードシーケンス、モディファイアスタック、デフォルトのアンバインド、すぐに貼り付けられる設定例を解説します。
  • OpenClaw vs Claude Code
    OpenClaw vs Claude Code: メッセージングアプリに接続されたライフアシスタントと、リポジトリを読んでアーキテクチャを理解するターミナルコーディングエージェント。それぞれがワークフローに組み込まれるべきタイミング。

設定をやめて、構築を始めよう。

AIオーケストレーション付きSaaSビルダーテンプレート。

On this page

カスタムキーバインディングを始める
コンテキストの理解
完全なアクションリファレンス
グローバルアクション
チャットアクション
履歴アクション
オートコンプリートアクション
確認アクション
トランスクリプトアクション
履歴検索アクション
タスクアクション
テーマ、ヘルプ、設定アクション
ナビゲーションアクション
キーストローク構文
修飾キー
大文字とShift
コードシーケンス
特殊キー
デフォルトショートカットの無効化
予約済みショートカット
ターミナルマルチプレクサの競合
Vimモードとの相互作用
バリデーションと診断
実用的な設定例
VS Codeユーザー向け設定
tmuxフレンドリーな設定
最小限のディストラクション設定
コードベースのパワーユーザー設定
自分の設定を構築する

設定をやめて、構築を始めよう。

AIオーケストレーション付きSaaSビルダーテンプレート。