Skip to main content
Claude Code はカスタマイズ可能なキーボードショートカットをサポートしています。/keybindings を実行して、~/.claude/keybindings.json に設定ファイルを作成または開きます。

設定ファイル

キーバインディング設定ファイルは、bindings 配列を持つオブジェクトです。各ブロックはコンテキストとキーストロークからアクションへのマップを指定します。
キーバインディングファイルへの変更は自動的に検出され、Claude Code を再起動することなく適用されます。
この例では、チャットコンテキストで Ctrl+E を外部エディタを開くにバインドし、Ctrl+U をアンバインドします。

コンテキスト

各バインディングブロックは、バインディングが適用されるコンテキストを指定します。 v2.1.205 より前では、Doctor コンテキストと /doctor 診断スクリーン用の doctor:fix アクションが存在していました。

利用可能なアクション

アクションは namespace:action 形式に従います。例えば、chat:submit はメッセージを送信し、app:toggleTodos はタスクリストを表示します。各コンテキストには特定のアクションが利用可能です。

アプリアクション

Global コンテキストで利用可能なアクション:

履歴アクション

コマンド履歴をナビゲートするためのアクション:

チャットアクション

Chat コンテキストで利用可能なアクション: *VT モードなし(Node <24.2.0/<22.17.0、Bun <1.2.23)の Windows では、デフォルトは Meta+M です。

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

Autocomplete コンテキストで利用可能なアクション:

確認アクション

Confirmation コンテキストで利用可能なアクション:

権限アクション

権限ダイアログの Confirmation コンテキストで利用可能なアクション:

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

Transcript コンテキストで利用可能なアクション:

履歴検索アクション

HistorySearch コンテキストで利用可能なアクション:

タスクアクション

Task コンテキストで利用可能なアクション:

テーマアクション

ThemePicker コンテキストで利用可能なアクション:

ヘルプアクション

Help コンテキストで利用可能なアクション:

タブアクション

Tabs コンテキストで利用可能なアクション:

添付ファイルアクション

Attachments コンテキストで利用可能なアクション: Footer コンテキストで利用可能なアクション:

メッセージセレクタアクション

MessageSelector コンテキストで利用可能なアクション:

Diff アクション

DiffDialog コンテキストで利用可能なアクション: Diff 詳細ビューは、ページャースタイルのキーを標準的なスクロールアクションにバインドします。これらのバインディングは DiffDialog コンテキストの一部であり、詳細ビューにのみ適用されます。スクロールアクションの下に記載されている Scroll コンテキストのデフォルトは変わりません。

モデルピッカーアクション

ModelPicker コンテキストで利用可能なアクション:

選択アクション

Select コンテキストで利用可能なアクション:

プラグインアクション

Plugin コンテキストで利用可能なアクション:

設定アクション

Settings コンテキストで利用可能なアクション。select:acceptconfirm:no アクションは選択確認コンテキストから再利用されており、設定固有の動作があります:変更は設定を変更するとすぐに各設定に適用されるため、Escape は変更を破棄するのではなく、変更を保存して閉じます。

音声アクション

音声ディクテーションが有効な場合、Chat コンテキストで利用可能なアクション:

スクロールアクション

フルスクリーンレンダリングが有効な場合、Scroll コンテキストで利用可能なアクション:

キーストロークシンタックス

モディファイア

+ セパレータでモディファイアキーを使用します。
  • ctrl または control - Control キー
  • shift - Shift キー
  • altoptoption、または meta - Windows と Linux の Alt キー、macOS の Option キー
  • cmdcommandsuper、または win - macOS の Command キー、Windows の Windows キー、Linux の Super キー
cmd グループは Super モディファイアを報告するターミナル(Kitty キーボードプロトコルまたは xterm の modifyOtherKeys モードをサポートするターミナルなど)でのみ検出されます。ほとんどのターミナルはこれを送信しないため、すべての場所で機能するバインディングには ctrl または meta を使用してください。 例えば:

大文字

スタンドアロンの大文字は Shift を意味します。例えば、Kshift+k と同等です。これは大文字と小文字のキーが異なる意味を持つ vim スタイルのバインディングに便利です。 モディファイア付きの大文字(例:ctrl+K)はスタイル的に扱われ、Shift を意味しませんctrl+Kctrl+k と同じです。

コード

コードはスペースで区切られたキーストロークのシーケンスです。

特殊キー

  • escape または esc - Escape キー
  • enter または return - Enter キー
  • tab - Tab キー
  • space - スペースバー
  • updownleftright - 矢印キー
  • backspacedelete - Delete キー

デフォルトショートカットをアンバインド

アクションを null に設定して、デフォルトショートカットをアンバインドします。
これはコード バインディングでも機能します。プレフィックスを共有するすべてのコードをアンバインドすると、そのプレフィックスを単一キー バインディングとして使用できるようになります。コード バインディングは任意のアクティブなコンテキストに存在し、そのプレフィックスを予約したままにするため、それを定義するコンテキストで各コードをアンバインドする必要があります。 デフォルトの Ctrl+X ファミリーは 2 つのコンテキストにまたがります。Chat では ctrl+x ctrl+kctrl+x ctrl+eTask では ctrl+x ctrl+b です。ctrl+x 自体を単一キー バインディングとして再利用するには、すべてをアンバインドします。
プレフィックス上の一部のコードをアンバインドしても、すべてをアンバインドしない場合、プレフィックスを押すと残りのバインディングのコード待機モードに入ります。

予約済みショートカット

これらのショートカットは再バインドできません。

ターミナルの競合

一部のショートカットはターミナルマルチプレクサと競合する可能性があります。

Vim モードの相互作用

Vim モードが /config → エディタモードで有効な場合、キーバインディングと Vim モードは独立して動作します。
  • Vim モード はテキスト入力レベルで入力を処理します(カーソル移動、モード、モーション)
  • キーバインディング はコンポーネントレベルでアクションを処理します(todos を切り替え、送信など)
  • Vim モードの Escape キーは INSERT から NORMAL モードに切り替わります。chat:cancel をトリガーしません
  • ほとんどの Ctrl+key ショートカットは Vim モードを通過してキーバインディングシステムに渡されます
  • Vim キーはキーバインディングファイルを通じて再マップできません。jj を Escape にマップするような 2 キーの INSERT モードシーケンスをマップするには、vimInsertModeRemaps 設定を使用してください
  • Vim NORMAL モードでは、? はヘルプメニューを表示します(Vim の動作)
  • Vim NORMAL モードでは、/ は履歴検索を開きます。標準モードの Ctrl+R と同じです

検証

Claude Code はキーバインディングを検証し、以下の警告を表示します。
  • 解析エラー(無効な JSON または構造)
  • 無効なコンテキスト名
  • 予約済みショートカットの競合
  • ターミナルマルチプレクサの競合
  • 同じコンテキスト内の重複バインディング
Claude Code はファイルが読み込まれるときに警告を報告し、各警告をデバッグログに書き込みます。Claude Code を --debug で起動して、詳細を確認してください。