SpyBara
Go Premium

keybindings.md 2026-09-28 22:59 UTC to 2026-09-29 14:57 UTC

This page contains 80 additions and 59 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Mon 21 22:59 Tue 22 23:59 Fri 25 23:58 Mon 28 22:59 Tue 29 14:57

キーボードショートカットのカスタマイズ

キーボードショートカットをカスタマイズして、Claude Code でキーバインディング設定ファイルを使用します。

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

設定ファイル

キーバインディング設定ファイルは、bindings 配列を持つオブジェクトです。各ブロックはコンテキストとキーストロークからアクションへのマップを指定します。

フィールド 説明
$schema エディタのオートコンプリート用のオプション JSON スキーマ URL
$docs オプションのドキュメント URL
bindings コンテキスト別のバインディングブロックの配列

この例では、チャットコンテキストで Ctrl+E を外部エディタを開くにバインドし、Ctrl+U をアンバインドします。

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

コンテキスト

各バインディングブロックは、バインディングが適用されるコンテキストを指定します。

コンテキスト 説明
Global アプリ全体に適用
Chat メインチャット入力エリア
Autocomplete オートコンプリートメニューが開いている
Settings 設定メニュー
Confirmation 権限と確認ダイアログ
Tabs タブナビゲーションコンポーネント
Help ヘルプメニューが表示されている
Transcript トランスクリプトビューア
HistorySearch 履歴検索モード(Ctrl+R)
Task バックグラウンドタスクが実行中
ThemePicker テーマピッカーダイアログ
Attachments 選択ダイアログ内の画像添付ファイルナビゲーション
Footer フッターインジケータナビゲーション(タスク、チーム、diff、Artifacts)
MessageSelector 巻き戻しと要約ダイアログのメッセージ選択
DiffDialog Diff ビューアナビゲーション
DiffPanel diff パネルが開いている
ModelPicker モデルピッカー努力レベル
EffortSlider /effort で開かれた努力スライダー
Select 汎用選択/リストコンポーネント
Plugin プラグインダイアログ(参照、発見、管理)
Agents エージェントビュー(claude agents)
Scroll 会話スクロールとフルスクリーンモードでのテキスト選択

v2.1.205 より前では、Doctor コンテキストと /doctor 診断スクリーン用の doctor:fix アクションが存在していました。

利用可能なアクション

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

アプリケーションアクション

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

アクション デフォルト 説明
app:interrupt Ctrl+C 現在の操作をキャンセル
app:exit Ctrl+D Claude Code を終了します。800ms 以内に 2 回押して確認
app:redraw (バインドなし) ターミナルの再描画を強制
app:toggleTodos Ctrl+T Claude のやることリストの表示を切り替えます。これは /tasks バックグラウンドタスクビューではありません
app:toggleTranscript Ctrl+O 詳細トランスクリプトの表示を切り替え

履歴アクション

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

アクション デフォルト 説明
history:search Ctrl+R 履歴検索を開く
history:previous Up 前の履歴項目
history:next Down 次の履歴項目

チャットアクション

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

アクション デフォルト 説明
chat:cancel Escape 現在の入力をキャンセル
chat:clearInput Ctrl+L 入力と会話を保持したまま、フルスクリーン再描画を強制
chat:clearScreen Cmd+K chat:clearInput と同じです。Cmd+K が iTerm2 と Terminal.app でどのように動作するかについては、会話をクリア を参照してください
chat:killAgents Ctrl+X Ctrl+K このセッション内のすべての実行中の バックグラウンドサブエージェント を停止し、残りのセッションの アーティファクト自動返信 をオフにします
chat:cycleMode Shift+Tab* 権限モードをサイクル
chat:modelPicker Meta+P モデルピッカーを開く
chat:fastMode Meta+O 高速モードを切り替え
chat:thinkingToggle Meta+T 拡張思考を切り替え
chat:submit Enter メッセージを送信
chat:queueSubmit Ctrl+X Enter メッセージを送信し、順番を待つようにマーク:Claude が作業中の場合、Claude Code は それをキューに入れ、ターンを中断することはありません。chat:submit とは異なり、オートコンプリート候補がハイライトされている場合でもドラフトを送信します。v2.1.247 以降が必要
chat:sendNow Ctrl+Enter、Ctrl+X Ctrl+S キューに入れたメッセージ とドラフトをすぐに送信します。Claude Code がキューに入れたものを送信する場合 は、Claude が作業中のターンに何が起こるかについて説明しています。何も実行されていない場合、キーはドラフトを送信し、シェルモード ではコマンドのみをキューに入れます。拡張キーを報告しないターミナルは Ctrl+Enter をプレーン Enter として配信するため、Ctrl+X Ctrl+S はどのターミナルでも機能するバインディングです。v2.1.275 以降が必要
chat:newline Ctrl+J 送信せずに改行を挿入
chat:undo Ctrl+_、Ctrl+Shift+- 最後のアクションを元に戻す
chat:externalEditor Ctrl+G、Ctrl+X Ctrl+E 外部エディタで開きます。エージェントビューディスパッチ入力 もこのアクションの単一キーストロークバインディングに従います
chat:stash Ctrl+S 現在のプロンプトを保存
chat:imagePaste Ctrl+V (Windows と WSL では Alt+V) クリップボードから画像を貼り付けます。WSL では、両方のショートカットがデフォルトでバインドされています

*VT モードなし Windows (Node <24.2.0/<22.17.0、Bun <1.2.23) では、デフォルトは Meta+M です。

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

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

アクション デフォルト 説明
autocomplete:accept Tab 候補を受け入れ
autocomplete:dismiss Escape メニューを閉じる
autocomplete:previous Up 前の候補
autocomplete:next Down 次の候補

確認アクション

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

アクション デフォルト 説明
confirm:yes Enter アクションを確認
confirm:no Escape アクションを拒否
confirm:previous Up 前のオプション
confirm:next Down 次のオプション
confirm:nextField Tab 次のフィールド
confirm:previousField (バインドなし) 前のフィールド
confirm:toggle Space 選択を切り替え
confirm:cycleMode Shift+Tab* 権限モードをサイクルします。ファイル権限プロンプトでは、開いている コメントフィールド を閉じます。フィールドが開いていない場合は、プロンプトがそのオプションを提供する場合、セッションの残りの間アクションを許可するオプションを選択します

*VT モードなし Windows (Node <24.2.0/<22.17.0、Bun <1.2.23) では、デフォルトは Meta+M です。

v2.1.257 より前では、confirm:toggleExplanation アクション(デフォルトでは Ctrl+E にバインド)が Bash と PowerShell 権限プロンプトでモデル生成の説明を表示していました。

ダイアログは confirm:yes と confirm:no を使用して、はい/いいえの質問をしていない場合でも受け入れてキャンセルします。このコンテキストで y や n などのベアレターをバインドすると、そのレターをキーとして表示しないダイアログにも作用します。y と n をキーとして表示するダイアログはそれらのレターを自分で読み取り、バインディングは必要ありません。

ほとんどのダイアログでは、Ctrl+C または Ctrl+D を 2 回押すと、Claude Code を終了する代わりにダイアログを閉じます。最初の押下後のヒントは、2 番目の押下がダイアログを閉じるか Claude Code を終了するかを示します。両方のキーは 予約済み であり、再バインドできません。

この例は y を confirm:yes に、n を confirm:no にバインドします:

{
  "bindings": [
    {
      "context": "Confirmation",
      "bindings": {
        "y": "confirm:yes",
        "n": "confirm:no"
      }
    }
  ]
}

これらのバインディングを使用すると、テキストフィールド がフォーカスを持つ間、y と n はまだレターとして入力されます。

v2.1.280 より前では、y はデフォルトで confirm:yes に、n は confirm:no にバインドされていました。v2.1.280 より前に /keybindings で keybindings.json を作成した場合、ファイルは両方のバインディングをリストし、それらの 2 行を削除するまで有効なままです。

権限アクション

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

アクション デフォルト 説明
permission:toggleDebug (バインドなし) 権限デバッグ情報を切り替えます。v2.1.146 で app:exit をシャドウしたため、Ctrl+D の以前のデフォルトが削除されました

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

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

アクション デフォルト 説明
transcript:toggleShowAll Ctrl+E すべてのコンテンツの表示を切り替え
transcript:exit q、Ctrl+C、Escape トランスクリプトビューを終了

transcript:toggleShowAll はクラシックレンダラーのみで適用されます。フルスクリーンレンダリング では、トランスクリプトビューアは show-all トグルを提供しません。

履歴検索アクション

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

アクション デフォルト 説明
historySearch:next Ctrl+R 次のマッチ
historySearch:accept Escape、Tab 選択を受け入れ
historySearch:cancel Ctrl+C 検索をキャンセル
historySearch:execute Enter 選択したコマンドを実行
historySearch:cycleScope Ctrl+S スコープをサイクル:セッション、プロジェクト、すべて

historySearch:next、historySearch:accept、historySearch:cancel、および historySearch:execute のデフォルトは、クラシックレンダラーのインライン履歴検索に適用されます。これは常にすべてのプロジェクトからプロンプトを検索します。historySearch:cycleScope は フルスクリーンレンダリング でのみ有効です。ここで Ctrl+R は検索ダイアログを開き、Ctrl+S はそのスコープをサイクルします。ダイアログの他のキーは固定されており、再バインドできません:Enter または Tab はハイライトされたマッチをプロンプト入力に配置し、Esc はキャンセルします。

タスクアクション

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

アクション デフォルト 説明
task:background Ctrl+B、Ctrl+X Ctrl+B 現在のタスクをバックグラウンドに移動します。Ctrl+X Ctrl+B コードは tmux プレフィックスの競合を回避します

テーマアクション

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

アクション デフォルト 説明
theme:toggleSyntaxHighlighting Ctrl+T 構文ハイライトを切り替え

ヘルプアクション

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

アクション デフォルト 説明
help:dismiss Escape ヘルプメニューを閉じる

タブアクション

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

アクション デフォルト 説明
tabs:next Tab、Right 次のタブ
tabs:previous Shift+Tab、Left 前のタブ

タブ付きダイアログでは、タブ行がフォーカスを持つ間、tabs:next と tabs:previous がタブを切り替えます。/help や /sandbox などの一部のダイアログでは、タブ切り替えキーはタブのコンテンツ内からも機能します。

Up と Down はタブ行とタブのコンテンツ間でフォーカスを移動し、コンテンツ内のリストはフォーカスを持つ間のみキーに応答します。

添付ファイルアクション

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

アクション デフォルト 説明
attachments:next Right 次の添付ファイル
attachments:previous Left 前の添付ファイル
attachments:remove Backspace、Delete 選択した添付ファイルを削除
attachments:exit Down、Escape 添付ファイルナビゲーションを終了

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

アクション デフォルト 説明
footer:next Right 次のフッター項目
footer:previous Left 前のフッター項目
footer:up Up フッター内を上に移動(上部で選択解除)
footer:down Down フッター内を下に移動
footer:openSelected Enter 選択したフッター項目を開く
footer:clearSelection Escape フッター選択をクリア
footer:dismiss (バインドなし) v2.1.281 で削除されました。アクションをまだ名前付けする keybindings.json は有効なままで、バインディングは何もしません。v2.1.281 より前では、Backspace と Delete はフッターから選択したアーティファクトリンクを削除しました

フッター項目が選択されている場合(プロンプトの下のエージェントパネルの行など)、chat:submit を chat:queueSubmit または chat:newline に再バインドしても、Enter はそれを開きます。

Chat バインディングは、Shift+Tab を chat:cycleMode のように Footer コンテキストがバインドしないキーで機能し、項目が選択されている間も機能します。

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

リワインドメニュー のメッセージリストでは、選択アクション とそのデフォルトキーを使用してメッセージを移動して選択します。これらのアクションの Select バインディングもそこに適用されます。MessageSelector コンテキストには、独自のアクションまたはデフォルトバインディングはありません。このリストのみのキーを変更するには、MessageSelector ブロックで select:accept などの選択アクションをバインドします。

この例は、リワインドメニューでハイライトされたメッセージを選択するために o を select:accept にバインドします。他のリストは変更しません:

{
  "bindings": [
    {
      "context": "MessageSelector",
      "bindings": {
        "o": "select:accept"
      }
    }
  ]
}

v2.1.283 より前では、このリストは Select バインディングを無視し、独自のアクション messageSelector:up、messageSelector:down、messageSelector:top、messageSelector:bottom、および messageSelector:select を持っていました。keybindings.json がそれらの名前の 1 つをバインドする場合、バインディングはこのリストで同じことを行う選択アクションとして機能し続けます。Home と End はリストのいずれかの端にジャンプします。v2.1.283 より前では、Shift+K や Shift+J などのキーがデフォルトでそれを行いました。

差分アクション

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

アクション デフォルト 説明
diff:dismiss Escape 差分ビューアを閉じます。詳細ビューから、ファイルリストに戻ります
diff:previousSource Left 前の差分ソース
diff:nextSource Right 次の差分ソース
diff:previousFile Up、K ファイルリスト内の前のファイル。詳細ビューで 1 行上にスクロール
diff:nextFile Down、J ファイルリスト内の次のファイル。詳細ビューで 1 行下にスクロール
diff:back (バインドなし) 差分ビューアで戻ります。Escape は diff:dismiss を介してバック アクションを実行します。詳細ビューの Left の以前のデフォルトは v2.1.203 で削除されました

ファイルリストは 選択アクション にも応答し、そのデフォルトキーと Select バインディングを通じて応答します。select:previous と select:next は前のファイルと次のファイルに移動し、Enter は select:accept を通じて選択したファイルの差分を開きます。ファイルリストのみのそれらのキーの 1 つを変更するには、DiffDialog ブロックで選択アクションをバインドします。

v2.1.283 より前では、ファイルリストは Select バインディングを無視し、Enter は別の diff:viewDetails アクションを通じて選択したファイルの差分を開きました。keybindings.json が diff:viewDetails をバインドする場合、バインディングはファイルリストで select:accept として機能し続けます。

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

アクション デフォルト 説明
scroll:pageUp PageUp ビューポートの半分上にスクロール
scroll:pageDown PageDown ビューポートの半分下にスクロール
scroll:fullPageUp Shift+Space、B フルビューポート上にスクロール
scroll:fullPageDown Space フルビューポート下にスクロール
scroll:top G、Home トップにジャンプ
scroll:bottom Shift+G、End ボトムにジャンプ

差分パネルアクション

/diff がフルスクリーンレンダリングで開く 差分パネル のアクション。app:cycleDiffBase は DiffPanel コンテキストにあり、パネルが開いている間はアクティブです。その他は Global です。パネルには Claude Code v2.1.260 以降が必要です。

アクション デフォルト 説明
app:toggleReplTab (バインドなし) 差分パネルを開くか閉じます。/diff を実行するのと同じです
app:cycleDiffBase Ctrl+X B パネルの比較ベースをサイクル:このセッション、コミットされていない、その後ブランチ
app:diffFileListUp Ctrl+Up、Meta+Up パネルのファイルリストがオーバーフローするときに上にスクロール
app:diffFileListDown Ctrl+Down、Meta+Down パネルのファイルリストがオーバーフローするときに下にスクロール
app:toggleDiffNoiseFilter (バインドなし) パネルのテストファイルと生成ファイルを表示または非表示
app:toggleDiffPreSession (バインドなし) このセッション前の変更を展開または折りたたむ

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

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

アクション デフォルト 説明
modelPicker:decreaseEffort Left 努力レベルを低下
modelPicker:increaseEffort Right 努力レベルを増加
modelPicker:thisSessionOnly s ハイライトされたモデルをこのセッションのみに適用

努力スライダーアクション

EffortSlider コンテキストで利用可能なアクション。引数なしで /effort を実行するときに開くスライダー。スライダーの Enter と Escape キーは再バインドできません。

アクション デフォルト 説明
effortSlider:decreaseEffort Left スライダーを次の低い努力レベルに移動します。v2.1.284 以降が必要
effortSlider:increaseEffort Right スライダーを次の高い努力レベルに移動します。v2.1.284 以降が必要
effortSlider:toggleUltracode Tab このセッションの ultracode をオンまたはオフにします。スライダーが それを提供する 場合。v2.1.284 以降が必要
effortSlider:thisSessionOnly s フォーカスされた 努力レベル をこのセッションのみに適用します。v2.1.257 以降が必要

選択アクション

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

アクション デフォルト 説明
select:next Down、J、Ctrl+N 次のオプション
select:previous Up、K、Ctrl+P 前のオプション
select:pageUp PageUp オプションの 1 ページ上に移動
select:pageDown PageDown オプションの 1 ページ下に移動
select:first Home 最初のオプション
select:last End 最後のオプション
select:accept Enter 選択を受け入れ
select:cancel Escape 選択をキャンセル

/skills や /mcp などのリストパネルでは、Claude Code は select:pageUp、select:pageDown、select:first、および select:last バインディングを適用します。/model ピッカーなどのほとんどの他のリストでは、select:first と select:last バインディングが適用されます。PageUp と PageDown は、バインディングに関係なく、これらのリストのオプションをページングします。

v2.1.280 より前では、これらの他のリストは Home、End、および select:first と select:last バインディングを無視していました。

プラグインアクション

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

アクション デフォルト 説明
plugin:toggle Space プラグイン選択を切り替え
plugin:install I 選択したプラグインをインストール
plugin:favorite F 選択したプラグインをお気に入りにして、インストール済みタブの上部付近でソート

設定アクション

Settings コンテキストで利用可能なアクション。select:accept と confirm:no アクションは 選択 と 確認 コンテキストから再利用されます。設定固有の動作:変更は各設定を変更するとすぐに適用されるため、Escape はパネルを閉じ、変更を保存します。拒否するのではなく。

アクション デフォルト 説明
settings:search / 検索モードに入る
settings:retry R エラー時に使用データの読み込みを再試行
select:accept Enter、Space 選択した設定を変更またはそのサブメニューを開く
confirm:no Escape パネルを閉じます。変更は既に保存されています

エージェントアクション

Agents コンテキストで利用可能なアクション。claude agents で開く エージェントビュー で適用されます。v2.1.257 以降が必要です。

アクション デフォルト 説明
agents:switchView Ctrl+S セッショングループ化 を状態とディレクトリ間で切り替え
agents:togglePin Ctrl+T 選択したセッションを ピン留めまたはピン留め解除

エージェントビューが開いている間、Claude Code は Agents コンテキストがバインドするキーに対して Agents バインディングを使用し、同じキーの Chat または Global バインディングを無視します。例えば、エージェントビューで Ctrl+S を押すと、デフォルトの chat:stash をトリガーするのではなく、セッショングループ化を切り替えます。

ディスパッチ入力の外部エディタショートカットは Agents アクションではありません。エージェントビューは Chat コンテキストの chat:externalEditor バインディング(デフォルトでは Ctrl+G)に従います。

バインディングはエージェントビューで単一キーストロークで発火するため、chat:externalEditor にバインドされた Ctrl+X Ctrl+E コードはエディタをそこで開きません。

音声アクション

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

アクション デフォルト 説明
voice:pushToTalk Space プロンプトをディクテーション。/voice モードに応じて保持またはタップ

スクロールアクション

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

アクション デフォルト 説明
scroll:lineUp wheelup 1 行上にスクロール。マウスホイールスクロールはこのアクションをトリガー
scroll:lineDown wheeldown 1 行下にスクロール。マウスホイールスクロールはこのアクションをトリガー
scroll:pageUp PageUp ビューポート高さの半分上にスクロール
scroll:pageDown PageDown ビューポート高さの半分下にスクロール
scroll:top Ctrl+Home 会話の開始にジャンプ
scroll:bottom Ctrl+End 最新のメッセージにジャンプして自動フォローを再度有効化
scroll:halfPageUp (バインドなし) ビューポート高さの半分上にスクロール。scroll:pageUp と同じ動作。vi スタイルの再バインドのために提供
scroll:halfPageDown (バインドなし) ビューポート高さの半分下にスクロール。scroll:pageDown と同じ動作。vi スタイルの再バインドのために提供
scroll:fullPageUp (バインドなし) フルビューポート高さ上にスクロール
scroll:fullPageDown (バインドなし) フルビューポート高さ下にスクロール
selection:copy Ctrl+Shift+C / Cmd+C 選択したテキストをクリップボードにコピー
selection:clear (バインドなし) アクティブなテキスト選択をクリア。v2.1.234 以降が必要
selection:extendLeft Shift+Left アクティブな選択を 1 列左に拡張
selection:extendRight Shift+Right アクティブな選択を 1 列右に拡張
selection:extendUp Shift+Up アクティブな選択を 1 行上に拡張。選択が上端に達するとビューポートをスクロール
selection:extendDown Shift+Down アクティブな選択を 1 行下に拡張。選択が下端に達するとビューポートをスクロール
selection:extendLineStart Shift+Home アクティブな選択を行の開始に拡張
selection:extendLineEnd Shift+End アクティブな選択を行の終了に拡張

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

モディファイア

+ セパレータでモディファイアキーを使用します。

  • ctrl または control - Control キー
  • shift - Shift キー
  • alt、opt、option、または meta - Windows と Linux の Alt キー、macOS の Option キー
  • cmd、command、super、または win - macOS の Command キー、Windows の Windows キー、Linux の Super キー

cmd グループは Super モディファイアを報告するターミナル(Kitty キーボードプロトコルまたは xterm の modifyOtherKeys モードをサポートするターミナルなど)でのみ検出されます。ほとんどのターミナルはこれを送信しないため、すべての場所で機能するバインディングには ctrl または meta を使用してください。

例えば:

ctrl+k          Ctrl + K
shift+tab       Shift + Tab
meta+p          macOS の Option + P、その他の場所では Alt + P
ctrl+shift+c    複数のモディファイア

大文字

Claude Code はキー名を大文字と小文字を区別せずに解析するため、K は k と同じバインディングであり、ctrl+K は ctrl+k と同じです。Shift とレターをバインドするには、shift+k と記述します。

非 US キーボードレイアウト

Ctrl ショートカットのキー名は、アクティブなキーボードレイアウトが他の文字を入力する場合でも、ラテン文字として記述してください。

Claude Code がキーボードで押したキーをバインディングにマッチさせる方法は、レイアウトの種類によって異なります。

  • キリル文字などの非ラテンレイアウトの場合、Claude Code はターミナルが Kitty キーボードプロトコルを使用し、その位置を報告する場合、キーの US レイアウト位置で Ctrl ショートカットをマッチさせます。そのようなターミナルでロシア語レイアウトがアクティブな場合、Ctrl キーと物理的な W キーを押すと ctrl+w がトリガーされます。位置を報告しないターミナルでは、Claude Code はターミナルがキープレスに対して送信するものをマッチさせます。ASCII 制御コードは Latin ショートカットをトリガーし、キリル文字として到着するキープレスはバインディングにマッチしません。
  • AZERTY などのラテン文字を並べ替えるレイアウトの場合、Claude Code はキーが入力する文字をマッチさせるため、Ctrl キーと A というラベルのキーを押すと ctrl+a がトリガーされます。

v2.1.247 より前では、Ghostty、Kitty、WezTerm、iTerm2 などの Kitty キーボードプロトコルを使用するターミナルで、非ラテンレイアウトの下で Ctrl ショートカットを押してもそのバインディングはトリガーされませんでした。

コード

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

ctrl+k ctrl+s   Ctrl+K を押して、リリースしてから Ctrl+S

各キーストロークは、その前のキーストロークから 3 秒以内に押してください。それより長く待つと、Claude Code はコードをキャンセルし、そのことを示す簡潔な通知を表示します。

特殊キー

  • escape または esc - Escape キー
  • enter または return - Enter キー
  • tab - Tab キー
  • space - スペースバー
  • up、down、left、right - 矢印キー
  • pageup、pagedown - Page Up キーと Page Down キー
  • home、end - Home キーと End キー
  • backspace、delete - Delete キー
  • wheelup、wheeldown - マウスホイールスクロールイベント

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

アクションを null に設定して、デフォルトショートカットをアンバインドします。

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

これはコード バインディングでも機能します。プレフィックスを共有するすべてのコードをアンバインドすると、そのプレフィックスを単一キー バインディングとして使用できるようになります。コード バインディングは任意のアクティブなコンテキストに存在し、そのプレフィックスを予約したままにするため、それを定義するコンテキストで各コードをアンバインドする必要があります。

Claude Code は ctrl+x プレフィックスに以下のデフォルトコードをバインドします。Chat では ctrl+x ctrl+k、ctrl+x ctrl+e、ctrl+x enter、ctrl+x ctrl+a、ctrl+x ctrl+s、ctrl+x tab、Task では ctrl+x ctrl+b、DiffPanel では ctrl+x b です。ctrl+x enter コードは v2.1.247 以降が必要で、ctrl+x b、ctrl+x ctrl+a、ctrl+x tab は v2.1.260 以降が必要で、ctrl+x ctrl+s は v2.1.275 以降が必要です。

ctrl+x 自体を単一キー バインディングとして再利用するには、すべてをアンバインドします。

{
  "bindings": [
    {
      "context": "Task",
      "bindings": {
        "ctrl+x ctrl+b": null
      }
    },
    {
      "context": "DiffPanel",
      "bindings": {
        "ctrl+x b": null
      }
    },
    {
      "context": "Chat",
      "bindings": {
        "ctrl+x ctrl+k": null,
        "ctrl+x ctrl+e": null,
        "ctrl+x enter": null,
        "ctrl+x ctrl+a": null,
        "ctrl+x ctrl+s": null,
        "ctrl+x tab": null,
        "ctrl+x": "chat:newline"
      }
    }
  ]
}

プレフィックス上の一部のコードをアンバインドしても、すべてをアンバインドしない場合、プレフィックスを押すと残りのバインディングのコード待機モードに入ります。

予約済みショートカット

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

ショートカット 理由
Ctrl+C ハードコードされた割り込み/キャンセル
Ctrl+D ハードコードされた終了
Ctrl+M Claude Code は常に Enter として受け取ります
Ctrl+[ Claude Code は常に Escape として受け取ります。Kitty キーボードプロトコルを使用するターミナルでは、v2.1.242 以降が必要です
Ctrl+I Claude Code は常に Tab として受け取ります
Ctrl+H ASCII バックスペースバイトを送信します。Claude Code が Windows で読み込む方法は、ターミナルと CLAUDE_CODE_BS_AS_CTRL_BACKSPACE 環境変数によって異なります
Caps Lock ターミナルアプリケーションに配信されない

ターミナルの競合

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

ショートカット 競合
Ctrl+B tmux プレフィックス(2 回押して送信)
Ctrl+A GNU screen プレフィックス
Ctrl+Z Unix プロセス一時停止(SIGTSTP)

テキストフィールド

ベアレター、数字、またはスペースをバインドした場合でも、ダイアログまたはパネル内のテキストフィールドでそのキャラクターを入力できます。このようなフィールドの 1 つは、Claude が質問する「Other」の回答です。フィールドがフォーカスを持っている間、Ctrl、Alt、または Cmd なしで押したプリント可能なキーはフィールドに送られ、Claude Code はそれをバインディングと照合しません。

これらのキーはフィールドがフォーカスを持っている間でもバインディングを実行します。

  • Enter、Escape、Tab、矢印キーなど、キャラクターを入力しないキー
  • Ctrl、Alt、または Cmd で押されたキー
  • 既に進行中のコードの 2 番目のキーストローク

メインプロンプトでは、Claude Code はすべてのキーを Chat などのアクティブなコンテキストと照合し、バインディングがそれを取らない場合にのみキーを入力します。

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 または構造)
  • 無効なコンテキスト名
  • 無効なアクション値(アクションが文字列または null ではない場合など)
  • 不明なアクション名(登録されたアクションのタイプミスなど)。Claude Code はバインディングをスキップし、そのキーのデフォルトバインディングを有効に保ちます。v2.1.246 より前では、不明なアクション名を持つバインディングはそのキーを静かに無効化していました
  • 予約済みショートカットの競合
  • 同じコンテキスト内の重複バインディング

Claude Code はファイルが読み込まれるときに警告を報告し、各警告をデバッグログに書き込みます。Claude Code を --debug で起動して、詳細を確認してください。