キーボードショートカット
Claude Code のキーボードショートカットの全一覧と、keybindings.json でキーを割り当て直す方法(コンテキスト・アクション・キーの書き方)をまとめます。
Claude Code の操作キーを一覧にし、~/.claude/keybindings.json で自分の好みに変える方法を説明します。入力欄の接頭辞(!・@・/)や Vim モードなど、入力の仕組みは対話モードの操作にあります。
- 既定のショートカットは、全般・テキスト編集・複数行入力・クイックコマンド・トランスクリプト・音声入力に分けて載せています
/keybindingsを実行すると、設定ファイルが作られて開きます- 設定ファイルの変更は、再起動なしで自動的に反映されます
- 割り当ては「コンテキスト」ごとに書き、操作は
chat:submitのような「アクション」で指します nullを割り当てると、既定のキーを外せます
補足
ショートカットはプラットフォームやターミナルで変わります。macOS で Alt 系(Alt+B・Alt+F・Alt+D・Alt+Y・Alt+P)を使うには、ターミナルで Option を Meta として扱う設定が要ります。設定方法はターミナル・表示・音声入力を見てください。フルスクリーン表示のトランスクリプトでは ? を押すと、そこで使えるキーが出ます。
既定のショートカット#
全般#
| ショートカット | 動作 | 補足 |
|---|---|---|
| Ctrl+C | 中断、または入力のクリア | 実行中の処理を中断する。何も動いていなければ、1回目で入力を消し、2回目で終了する |
| Ctrl+X Ctrl+K | このセッションのバックグラウンドのサブエージェントをすべて止め、アーティファクトの自動返信もそのセッションの間は切る | 3秒以内にもう一度押して確定する。バックグラウンドのサブエージェントの権限プロンプトが開いている間も押せる |
| Ctrl+D | セッションを終了 | 1回目は確認の表示、800ms 以内の2回目で終了する。入力に文字があるときは、カーソルの後ろの1文字を消す |
| Ctrl+G または Ctrl+X Ctrl+E | 既定のテキストエディタで開く | プロンプトや回答を外部エディタで編集する。/config の「Show last response in external editor」を有効にすると、直前の返信が # コメントとして上に付き、保存時に取り除かれる |
| Ctrl+L | 画面の再描画 | 入力と会話履歴は残したまま、端末全体を描き直す。表示が崩れたときに使う |
| Ctrl+O | トランスクリプトの表示切り替え | ツールの使用と実行の詳細、各返信の時刻とモデルを表示する。MCP 呼び出しなど既定で畳まれる行や、ほかのセッションからのメッセージも展開する |
| Ctrl+R | コマンド履歴の逆方向検索 | 過去の入力を対話的に検索する |
| Ctrl+V、iTerm2 は Cmd+V、Windows と WSL は Alt+V | クリップボードの画像を貼り付け | カーソル位置に [Image #N] が入り、プロンプトの中で位置を指して参照できる。WSL では Ctrl+V と Alt+V の両方が有効。端末が Ctrl+V を横取りするなら Alt+V を使う |
| Ctrl+B | 実行中のタスクをバックグラウンドへ | Bash コマンドとエージェントが対象。tmux では2回押す |
| Ctrl+T | Claude の ToDo チェックリストの表示切り替え | ステータス領域に出し入れする。バックグラウンドタスクの画面ではなく、実行中のシェルやサブエージェントは /tasks で見る |
| Ctrl+S | プロンプトの退避と復元 | 入力があれば退避して欄を空にする。空の欄でもう一度押すと、文字・カーソル位置・貼り付けた内容・入力モードを戻す。! のシェルコマンドはシェルモードで戻る |
| Ctrl+Z | Claude Code を一時停止 | Unix のみ。シェルへ戻り、fg で再開する |
| Left / Right | ダイアログのタブを切り替え | 権限ダイアログやメニューで、タブの行にフォーカスがあるときに切り替わる |
| Tab | 補完候補の採用、または権限の回答にコメントを付ける | 補完候補が出ているときは選択中の候補を採る。多くの権限プロンプトでは「Yes」「No」にフォーカスがあるとコメント欄が開き、もう一度押すと閉じる |
| Up / Down、または Ctrl+P / Ctrl+N | カーソル移動、または履歴の移動 | 入力が複数の表示行にわたるときは、まず欄の中でカーソルが動く。最初か最後の行に来てからもう一度押すと履歴を辿る。メッセージをキューに入れている間は、最初の行での Up がキューを取り戻す |
| Esc | Claude の中断、またはダイアログを閉じる | 応答やツール呼び出しを途中で止めて方向を変えられる。それまでの作業は残る。キューにメッセージがあれば次に送られる。ダイアログが開いていれば閉じる。フッターの項目(プロンプトの下のサブエージェントパネルの行など)を選択中は、中断せず選択を外す。権限プロンプトでは、コメントなしの「No」と同じく拒否になる |
| Esc + Esc | 入力の下書きを消す、または巻き戻し | 入力に文字があれば消し、下書きは履歴に残って Up で戻せる。入力が空なら巻き戻しメニューが開く |
| Ctrl+Enter または Ctrl+X Ctrl+S | キューのメッセージを今すぐ送る | 書きかけの下書きも一緒に送る。シェルモードではコマンドをキューに入れるだけ。拡張キーを報告しない端末では Ctrl+Enter が Enter として届くので、どの端末でも使えるのは Ctrl+X Ctrl+S。v2.1.275 以降 |
| Shift+Tab(Node や Bun の VT 入力モードが無効な Windows では Alt+M) | 権限モードの切り替え | default(モード表示では Manual)、acceptEdits、plan、使える場合は bypassPermissions、続けて auto の順に回る。auto からは1回で default に戻る。ファイルの権限プロンプトでは、開いているコメント欄を閉じ、欄が無ければ「このセッション中は許可」の選択肢を選ぶ |
| Option+P(macOS)/ Alt+P(Windows・Linux) | モデルの切り替え | プロンプトを消さずに切り替えられる |
| Option+T(macOS)/ Alt+T(Windows・Linux) | 拡張思考のオン・オフ | Opus 5.5・Sonnet 5.5・Fable 系のモデルは常に拡張思考を使うので効果がない。macOS では Option を Meta にしなくても動く |
| Option+O(macOS)/ Alt+O(Windows・Linux) | fast mode のオン・オフ |
権限モードは権限モード、モデルと fast mode はモデル・effort・fast modeを参照してください。
テキスト編集#
| ショートカット | 動作 | 補足 |
|---|---|---|
| Ctrl+A | 現在の行の先頭へ | 複数行入力では、現在の論理行の先頭 |
| Ctrl+E | 現在の行の末尾へ | 複数行入力では、現在の論理行の末尾 |
| Ctrl+K | 行末まで削除 | 削除した文字は貼り付け用に保存される |
| Ctrl+U | カーソルから行頭まで削除 | 保存される。複数行入力では繰り返すと行をまたいで消える。macOS の iTerm2・Terminal.app などでは Cmd+Backspace がこの操作に当たる |
| Ctrl+W | 直前の空白まで削除 | 保存される。パスや --flag=value が1回で消える。直前の単語だけ消すなら macOS は Option+Delete、Windows は Ctrl+Backspace |
| Ctrl+Y | 削除した文字を貼り付け | Ctrl+K・Ctrl+U・Ctrl+W など、単語や行の削除で最後に消した文字を貼る |
| Alt+Y(Ctrl+Y の後) | 貼り付け履歴を順に切り替え | 以前に削除した文字を辿る。macOS では Option を Meta にする必要がある |
| Alt+B | 1単語戻る | macOS では Option を Meta にする必要がある |
| Alt+F | 1単語進む | 現在の単語の末尾へ。単語の間にいるときは次の単語の末尾へ。macOS では Option を Meta にする必要がある |
| Alt+D | 単語の末尾まで削除 | 保存される。macOS では Option を Meta にする必要がある |
| Ctrl+_ または Ctrl+Shift+- | 直前の入力編集を取り消す | 入力の文字とカーソル位置を前の状態に戻す |
単語系のショートカット(Alt+B・Alt+F・Alt+D・Option+Delete・Ctrl+Backspace)は、英数字の連なりを1単語と数え、_・.・/ などの記号で区切ります。src/utils/foo.ts で Alt+B を繰り返すと、ts・foo・utils・src の頭で止まります。Ctrl+W は記号を無視して直前の空白まで消すので、1回で src/utils/foo.ts 全体が消えます。空白を置かない中国語や日本語でも、単語ごとに動きます。この挙動は v2.1.261 以降のもので、以前に有効化していた設定 keybindingFlavor は非推奨で効果がありません。これらのキーには設定ファイル側のアクションが無く、割り当て直せません。
テーマと表示#
| ショートカット | 動作 | 補足 |
|---|---|---|
| Ctrl+T | コードブロックのシンタックスハイライトの切り替え | /theme のピッカーの中だけで効く。Claude の返信のコードに色を付けるかを決める |
複数行入力#
| 方法 | ショートカット | 補足 |
|---|---|---|
| 手早い方法 | \ + Enter |
どの端末でも動く |
| Option キー | Option+Enter | macOS で Option を Meta にしたあと |
| Shift+Enter | Shift+Enter | iTerm2・WezTerm・Ghostty・Kitty・Warp・Apple Terminal・Windows Terminal ではそのまま動く。ほかの端末はターミナル・表示・音声入力を見る |
| 制御シーケンス | Ctrl+J | 設定なしでどの端末でも動く |
| 貼り付け | そのまま貼る | コードブロックやログ向き |
クイックコマンド#
| 入力 | 動作 | 補足 |
|---|---|---|
行頭の / |
コマンドまたはスキル | スラッシュコマンド一覧・スキルを参照 |
行頭の ! |
シェルモード | コマンドを直接実行し、出力をセッションに加えて Claude が応答する |
@ |
ファイルパスのメンション | パスの補完が出る。セッション間メッセージが使えるセッションでは、@ の後に1文字以上入力すると、同じマシンの生きているほかのセッションも候補に出る。v2.1.232 以降 |
: |
絵文字ショートコード | :name: を最後まで打つと絵文字になり、2文字以上で候補が出る。v2.1.217 以降 |
空の入力での ? |
ショートカットのヘルプパネルの表示切り替え | 文字が入っているときの ? は、そのまま文字として入る |
トランスクリプトビューア#
Ctrl+O で開いているときに使えます。どちらのレンダラーが有効かは、引数なしの /tui で確かめます。Ctrl+E は transcript:toggleShowAll で割り当て直せます。
| ショートカット | 動作 |
|---|---|
| ? | キーボードショートカットのヘルプパネルの表示切り替え。フルスクリーン表示が必要 |
| { / } | 前または次のユーザープロンプトへ移動する(vim の段落移動に似る)。フルスクリーン表示が必要 |
| Ctrl+E | すべての内容の表示切り替え。従来のレンダラーのみで、フルスクリーン表示では使えない |
| [ | 会話全体を端末のスクロールバックへ書き出し、Cmd+F や tmux のコピーモードなどで検索できるようにする。フルスクリーン表示が必要 |
| v | 会話を一時ファイルに書き出し、$VISUAL または $EDITOR で開く。フルスクリーン表示が必要 |
| q、Ctrl+C、Esc | トランスクリプトを閉じる。3つとも transcript:exit で割り当て直せる |
フルスクリーン表示の詳細はターミナル・表示・音声入力にあります。
音声入力#
| ショートカット | 動作 | 補足 |
|---|---|---|
| Space を長押し、または軽く押す | 音声ディクテーション | 音声ディクテーションの有効化が必要。長押しで録音し、/voice tap でタップ切り替えにもできる。キーは割り当て直せる |
設定ファイル#
~/.claude/keybindings.json は、bindings 配列を持つオブジェクトです。配列の要素は、コンテキストとキーとアクションの対応表の組です。
| フィールド | 説明 |
|---|---|
$schema |
エディタの補完用の JSON Schema の URL(省略可) |
$docs |
ドキュメントの URL(省略可) |
bindings |
コンテキストごとの割り当てブロックの配列 |
次の例は、Chat コンテキストで Ctrl+E を外部エディタの起動に割り当て、Ctrl+S を外します。
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+s": null
}
}
]
}
コンテキスト#
割り当てのブロックごとに、効く場面を context で指定します。
| コンテキスト | 効く場面 |
|---|---|
Global |
アプリ全体 |
Chat |
メインの入力欄 |
Autocomplete |
補完メニューが開いているとき |
Settings |
設定メニュー |
Confirmation |
権限・確認のダイアログ |
Tabs |
タブの移動部品 |
Help |
ヘルプメニューの表示中 |
Transcript |
トランスクリプトビューア |
HistorySearch |
履歴検索モード(Ctrl+R) |
Task |
タスクがフォアグラウンドで動いているとき |
ThemePicker |
テーマ選択ダイアログ |
Attachments |
選択ダイアログでの画像添付の移動 |
Footer |
フッターの項目(タスク・チーム・diff・アーティファクト)の移動 |
MessageSelector |
巻き戻しと要約ダイアログのメッセージ選択 |
DiffDialog |
diff ビューア(組み込みの cc-plugin-diff mod を無効にしたときの /diff)の移動 |
DiffPanel |
diff パネルが開いているとき |
Pane |
Mod(モッド)が描いたペインにキーボードフォーカスがあるとき |
PaneField |
Mod のペインの中の入力欄か選択欄にキーボードフォーカスがあるとき |
ModelPicker |
モデルピッカーの effort レベル |
EffortSlider |
/effort で開く effort スライダー |
Select |
汎用の選択・リスト部品 |
Plugin |
プラグインのダイアログ(探す・見つける・管理) |
Agents |
エージェントビュー(claude agents) |
Scroll |
フルスクリーン表示での会話のスクロールとテキスト選択 |
v2.1.205 より前には、/doctor の診断画面向けの Doctor コンテキストと doctor:fix アクションがありました。
アクション#
アクションは chat:submit(メッセージ送信)や app:toggleTodos(タスクリストの表示)のように 名前空間:動作 の形です。使えるアクションはコンテキストごとに決まっています。
App(Global)#
| アクション | 既定 | 説明 |
|---|---|---|
app:interrupt |
Ctrl+C | 現在の操作を中止 |
app:exit |
Ctrl+D | 終了。800ms 以内に2回押して確定 |
app:redraw |
(未割り当て) | 端末の再描画 |
app:toggleTodos |
Ctrl+T | Claude の ToDo チェックリストの表示切り替え。/tasks の画面とは別 |
app:toggleTranscript |
Ctrl+O | 詳細なトランスクリプトの切り替え |
History#
| アクション | 既定 | 説明 |
|---|---|---|
history:search |
Ctrl+R | 履歴検索を開く |
history:previous |
Up | 前の履歴 |
history:next |
Down | 次の履歴 |
Chat#
| アクション | 既定 | 説明 |
|---|---|---|
chat:cancel |
Escape | 現在の入力を取り消す |
chat:clearInput |
Ctrl+L | 入力と会話を残したまま画面全体を再描画 |
chat:clearScreen |
Cmd+K | chat:clearInput と同じ。iTerm2 と Terminal.app での Cmd+K の挙動はフルスクリーン表示の説明を参照 |
chat:killAgents |
Ctrl+X Ctrl+K | このセッションのバックグラウンドのサブエージェントをすべて止め、アーティファクトの自動返信も切る。3秒以内にもう一度押して確定する。バックグラウンドのサブエージェントの権限プロンプトが開いている間も押せる |
chat:cycleMode |
Shift+Tab* | 権限モードを切り替え |
chat:modelPicker |
Meta+P | モデルピッカーを開く |
chat:fastMode |
Meta+O | fast mode の切り替え |
chat:thinkingToggle |
Meta+T | 拡張思考の切り替え |
chat:submit |
Enter | メッセージを送信 |
chat:queueSubmit |
Ctrl+X Enter | 順番を待つ形で送信する。Claude が作業中ならキューに入り、ターンを中断しない。chat:submit と違い、補完候補が選択中でも下書きを送る。v2.1.247 以降 |
chat:sendNow |
Ctrl+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 | 外部エディタで開く。エージェントビューの送信入力も、このアクションの1キーの割り当てに従う |
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* | 権限モードを切り替え。ファイルの権限プロンプトでは開いているコメント欄を閉じ、欄が無ければ「このセッション中は許可」の選択肢を選ぶ |
permission:toggleDebug |
(未割り当て) | 権限のデバッグ情報の切り替え。以前の既定の Ctrl+D は app:exit を覆い隠すため v2.1.146 で外された |
ダイアログは、はい・いいえを聞く形でなくても confirm:yes と confirm:no で承認と取り消しを行います。y や n のような素の文字をこのコンテキストに割り当てると、その文字を表示していないダイアログにも効きます。y・n をキーとして表示するダイアログは、それらの文字を自分で読むので割り当てが要りません。多くのダイアログでは Ctrl+C か Ctrl+D を2回押すと、Claude Code を終了せずにダイアログだけが閉じます。この2つは予約済みで割り当て直せません。
次の例は、y を承認に、n を拒否に割り当てます。
{
"bindings": [
{
"context": "Confirmation",
"bindings": {
"y": "confirm:yes",
"n": "confirm:no"
}
}
]
}
この割り当てでも、後述のテキスト欄にフォーカスがある間は y と n は文字として入力できます。v2.1.280 より前は、y と n が既定でこの2つに割り当てられていました。それより前に /keybindings で作ったファイルにはその2行が書かれており、消すまで効き続けます。v2.1.257 より前には、Bash と PowerShell の権限プロンプトで、コマンドの説明をモデルに生成させて表示する confirm:toggleExplanation(既定は Ctrl+E)がありました。
Transcript#
| アクション | 既定 | 説明 |
|---|---|---|
transcript:toggleShowAll |
Ctrl+E | すべての内容の表示切り替え。従来のレンダラーのみ |
transcript:exit |
q、Ctrl+C、Escape | トランスクリプトを閉じる |
HistorySearch#
| アクション | 既定 | 説明 |
|---|---|---|
historySearch:next |
Ctrl+R | 次の一致 |
historySearch:accept |
Escape、Tab | 選択を採用 |
historySearch:cancel |
Ctrl+C | 検索を取り消す |
historySearch:execute |
Enter | 選択したコマンドを実行 |
historySearch:cycleScope |
Ctrl+S | 範囲(セッション・プロジェクト・すべて)を切り替え |
next・accept・cancel・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・Help#
| アクション | 既定 | 説明 |
|---|---|---|
theme:toggleSyntaxHighlighting |
Ctrl+T | シンタックスハイライトの切り替え(ThemePicker) |
help:dismiss |
Escape | ヘルプメニューを閉じる(Help) |
Tabs#
| アクション | 既定 | 説明 |
|---|---|---|
tabs:next |
Tab、Right | 次のタブ |
tabs:previous |
Shift+Tab、Left | 前のタブ |
タブ付きダイアログでは、タブの行にフォーカスがある間にタブが切り替わります。/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 より前は Backspace と Delete が割り当てられ、選択したアーティファクトのリンクをフッターから消していた |
フッターの項目(プロンプトの下のエージェントパネルの行など)を選択している間は、Chat で Enter を chat:queueSubmit や chat:newline に割り当て直していても、Enter で項目が開きます。Footer が割り当てていないキー(chat:cycleMode の Shift+Tab など)の Chat の割り当ては、項目の選択中も効きます。
MessageSelector#
巻き戻しメニューのメッセージ一覧では、後述の Select アクションとその既定のキーでメッセージを移動して選びます。Select への割り当てもここに効きます。MessageSelector コンテキスト自体にアクションと既定のキーはありません。この一覧だけキーを変えたいときに使い、MessageSelector のブロックで select:accept などの Select アクションを割り当てます。
次の例は、巻き戻しメニューで強調中のメッセージを o で選べるようにします(ほかのリストは変わりません)。
{
"bindings": [
{
"context": "MessageSelector",
"bindings": {
"o": "select:accept"
}
}
]
}
v2.1.283 より前は、この一覧は Select の割り当てを無視し、独自の messageSelector:up・messageSelector:down・messageSelector:top・messageSelector:bottom・messageSelector:select を持っていました。これらの名前を書いた keybindings.json は、同じ動作の Select アクションとして今も効きます。Home と End は一覧の両端へ移動します(v2.1.283 より前は Shift+K と Shift+J などが既定でした)。
DiffDialog(diff ビューア)#
ここのアクションが効くのは、Claude Code の従来の diff ビューアだけです。フルスクリーン表示でない /diff は、組み込みの cc-plugin-diff mod(/plugin で無効にできる)が有効なあいだ diff ダイアログを開きます。この従来のビューアが開くのは、mod を無効にしたあとだけです。これらのアクションを書いた keybindings.json は、どちらの場合もエラーなく読み込まれます。
| アクション | 既定 | 説明 |
|---|---|---|
diff:dismiss |
Escape | diff ビューアを閉じる。詳細表示からはファイル一覧に戻る |
diff:previousSource |
Left | 前の diff の取得元 |
diff:nextSource |
Right | 次の diff の取得元 |
diff:previousFile |
Up、K | ファイル一覧では前のファイル、詳細表示では1行上へスクロール |
diff:nextFile |
Down、J | ファイル一覧では次のファイル、詳細表示では1行下へスクロール |
diff:back |
(未割り当て) | diff ビューアで戻る。Escape は diff:dismiss で戻る動作をする。詳細表示での Left の既定は v2.1.203 で外された |
ファイル一覧は Select アクションにも反応します。select:previous と select:next で前後のファイルへ移り、Enter は select:accept で選んだファイルの diff を開きます。一覧だけキーを変えるなら、DiffDialog のブロックに Select アクションを割り当てます。v2.1.283 より前は、一覧は Select の割り当てを無視し、Enter は別アクション diff:viewDetails でした。この名前を書いたファイルは、一覧で select:accept として効き続けます。
diff の詳細表示には、ページャ風のキーが標準のスクロールアクションに割り当てられています。これらは DiffDialog の一部で詳細表示だけに効き、Scroll コンテキストの既定は変わりません。
| アクション | 既定 | 説明 |
|---|---|---|
scroll:pageUp |
PageUp | 画面の半分だけ上へ |
scroll:pageDown |
PageDown | 画面の半分だけ下へ |
scroll:fullPageUp |
Shift+Space、B | 画面1枚分上へ |
scroll:fullPageDown |
Space | 画面1枚分下へ |
scroll:top |
G、Home | 先頭へ |
scroll:bottom |
Shift+G、End | 末尾へ |
Diff パネル#
フルスクリーン表示で /diff が開く diff パネルのアクションです。app:cycleDiffBase はパネルが開いている間だけ有効な DiffPanel コンテキスト、ほかは Global です。
このパネルは、組み込みの cc-plugin-diff mod が描きます。mod が扱うのは app:cycleDiffBase・app:diffFileListUp・app:diffFileListDown です。app:toggleReplTab・app:toggleDiffNoiseFilter・app:toggleDiffPreSession が届くのは、/plugin で cc-plugin-diff を無効にしたときに /diff が開く従来のパネルだけです。
| アクション | 既定 | 説明 |
|---|---|---|
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 | effort レベルを下げる |
modelPicker:increaseEffort |
Right | effort レベルを上げる |
modelPicker:thisSessionOnly |
s | 強調中のモデルをこのセッションだけに適用 |
EffortSlider#
/effort を引数なしで実行すると開くスライダーのアクションです。スライダーの Enter と Escape は割り当て直せません。
| アクション | 既定 | 説明 |
|---|---|---|
effortSlider:decreaseEffort |
Left | スライダーを1段低い effort に動かす。v2.1.284 以降 |
effortSlider:increaseEffort |
Right | スライダーを1段高い effort に動かす。v2.1.284 以降 |
effortSlider:toggleUltracode |
Tab | スライダーが ultracode を出しているとき、このセッションの ultracode をオン・オフする。v2.1.284 以降 |
effortSlider:thisSessionOnly |
s | 選択中の effort レベルをこのセッションだけに適用。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・/tasks のようなリストパネルでは、select:pageUp・select:pageDown・select:first・select:last の割り当てが効きます。/model ピッカーなどそれ以外の多くのリストでは select:first と select:last の割り当てが効き、PageUp と PageDown は割り当てに関係なくページ送りになります。v2.1.280 より前は、それらのリストは Home・End と、select:first・select:last の割り当てを無視しました。v2.1.283 より前は、/mcp のツール一覧は割り当てに関係なく固定の PageUp・PageDown でページ送りしていました。
Plugin#
| アクション | 既定 | 説明 |
|---|---|---|
plugin:toggle |
Space | プラグインの選択を切り替え |
plugin:install |
I | 選択したプラグインをインストール |
plugin:favorite |
F | 選択したプラグインをお気に入りにし、Installed タブの上のほうに並べる |
Settings#
Settings コンテキストでは、select:accept と confirm:no を設定画面向けの動作で使い回します。変更は1項目ごとにすぐ適用されるので、Escape は拒否ではなく、変更を保存したままパネルを閉じます。
| アクション | 既定 | 説明 |
|---|---|---|
settings:search |
/ | 検索モードに入る |
settings:retry |
R | 使用量データの読み込みエラー時に再試行 |
select:accept |
Enter、Space | 選んだ設定を変更する、またはサブメニューを開く |
confirm:no |
Escape | パネルを閉じる。変更は保存済み |
Agents#
エージェントビュー(claude agents)で効く Agents コンテキストです。v2.1.257 以降。
| アクション | 既定 | 説明 |
|---|---|---|
agents:switchView |
Ctrl+S | セッションのグループ分けを、状態別とディレクトリ別で切り替え |
agents:togglePin |
Ctrl+T | 選択したセッションのピン留めを切り替え |
agents:find |
Ctrl+F | 名前でセッションを探す(n: フィルター)。v2.1.288 以降 |
agents:rename |
Ctrl+R | 選択したセッションの名前を変える。v2.1.288 以降 |
agents:previousGroup |
Ctrl+Up、Meta+Up | 前のグループの見出しへ移る。v2.1.288 以降 |
agents:nextGroup |
Ctrl+Down、Meta+Down | 次のグループの見出しへ移る。v2.1.288 以降 |
エージェントビューを開いている間、Agents が割り当てているキーは Agents の割り当てが使われ、同じキーの Chat や Global の割り当ては無視されます。たとえば Ctrl+S は、既定の chat:stash ではなくグループ分けの切り替えになります。送信入力の外部エディタのキーは Agents のアクションではなく、Chat の chat:externalEditor(既定は Ctrl+G)に従います。エージェントビューでは1キーの割り当てだけが動くので、Ctrl+X Ctrl+E の連続キーはエディタを開きません。
Voice#
音声ディクテーションが有効なとき、Chat コンテキストで使えます。
| アクション | 既定 | 説明 |
|---|---|---|
voice:pushToTalk |
Space | プロンプトを音声で入力する。/voice のモードにより、長押しまたはタップ |
Scroll#
フルスクリーン表示が有効なときの 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 |
(未割り当て) | 画面1枚分上へ |
scroll:fullPageDown |
(未割り当て) | 画面1枚分下へ |
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 修飾キーを複数
キー名は大文字小文字を区別せず、K と k、ctrl+K と ctrl+k は同じ割り当てです。Shift と文字を組み合わせるなら shift+k と書きます。
英語配列以外のキーボード#
Ctrl のショートカットのキー名は、いま使っている配列がほかの文字を打つ場合でも、ラテン文字で書きます。
- キリル文字のような非ラテン配列では、端末が Kitty キーボードプロトコルを使いキーの位置を報告する場合に、US 配列での位置で Ctrl のショートカットが照合されます。ロシア語配列で Ctrl と物理的な W キーを押すと
ctrl+wになります。位置を報告しない端末では、端末が送ったものがそのまま照合されます。ASCII の制御コードならラテン文字のショートカットが働き、キリル文字として届いたキー入力はどの割り当てにも一致しません - AZERTY のようにラテン文字を並べ替えた配列では、そのキーが打つ文字で照合されます。Ctrl と「A」と書かれたキーを押すと
ctrl+aになります
コード(連続キー)#
スペースで区切ったキーの並びがコード(chord)です。
ctrl+k ctrl+s Ctrl+K を押して離し、続けて Ctrl+S
各キーは直前のキーから3秒以内に押します。超えると、コードは取り消され、短い通知が出ます。
特殊キー#
| 書き方 | キー |
|---|---|
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 |
削除キー |
wheelup、wheeldown |
マウスホイールのスクロール |
既定のキーを外す#
アクションに null を割り当てると、既定のショートカットを外せます。
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
コードでも同じです。同じプレフィックスを持つコードをすべて外すと、そのプレフィックスを1キーの割り当てに使えます。有効なコンテキストのどれかにコードが残っていれば、プレフィックスは予約されたままなので、コードを定義しているコンテキストごとに外します。
既定で ctrl+x をプレフィックスにしているコードは、コンテキストごとに次のとおりです。
Chat:ctrl+x ctrl+k・ctrl+x ctrl+e・ctrl+x enter・ctrl+x ctrl+a・ctrl+x ctrl+s・ctrl+x tabTask:ctrl+x ctrl+bDiffPanel:ctrl+x bPane:ctrl+x left・ctrl+x right・ctrl+x up・ctrl+x down・ctrl+x xPaneField:ctrl+x x
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 自体を1キーの割り当てに取り戻すには、これらをすべて外します。
{
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+x ctrl+b": null
}
},
{
"context": "DiffPanel",
"bindings": {
"ctrl+x b": null
}
},
{
"context": "Pane",
"bindings": {
"ctrl+x left": null,
"ctrl+x right": null,
"ctrl+x up": null,
"ctrl+x down": null,
"ctrl+x x": null
}
},
{
"context": "PaneField",
"bindings": {
"ctrl+x x": 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+[ | 常に Escape として届く。Kitty キーボードプロトコルの端末では v2.1.242 以降 |
| Ctrl+I | 常に Tab として届く |
| Ctrl+H | ASCII のバックスペースを送る。Windows での扱いは端末と CLAUDE_CODE_BS_AS_CTRL_BACKSPACE 環境変数で変わる |
| Caps Lock | 端末アプリには届かない |
端末との衝突#
ターミナルマルチプレクサなどのショートカットとぶつかることがあります。
| ショートカット | 衝突相手 |
|---|---|
| Ctrl+B | tmux のプレフィックス(2回押すと送られる) |
| Ctrl+A | GNU screen のプレフィックス |
| Ctrl+Z | Unix のプロセス一時停止(SIGTSTP) |
テキスト欄#
素の文字・数字・Space を割り当てても、ダイアログやパネルの中のテキスト欄では、その文字を入力できます。Claude が聞いてくる質問の「Other」の回答欄がその例です。欄にフォーカスがある間、Ctrl・Alt・Cmd なしで押した文字キーは欄に入り、割り当てとは照合されません。
次のキーは、欄にフォーカスがあっても割り当てが動きます。
- 文字を打たないキー(Enter・Escape・Tab・矢印キー)
- Ctrl・Alt・Cmd と一緒に押したキー
- すでに始まっているコードの2打目
メインのプロンプトでは、すべてのキーを Chat などの有効なコンテキストと照合し、どの割り当ても取らなかったキーだけが文字として入ります。
Vim モードとの関係#
/config の Editor mode で Vim モードを有効にしているとき、Vim モードとキー割り当ては別々に動きます。
- Vim モードは入力欄の中の動き(カーソル移動・モード・モーション)を扱い、キー割り当ては、ToDo の表示や送信のような部品レベルの動作を扱う
- Vim モードの Escape は INSERT から NORMAL への切り替えで、
chat:cancelは呼ばない - ほとんどの Ctrl キーのショートカットは Vim モードを通り抜けてキー割り当てへ届く
- Vim のキーは設定ファイルでは割り当て直せない。
jjのような2キーの INSERT モードの並びを Escape にしたいときは、設定vimInsertModeRemapsを使う(対話モードの操作を参照) - NORMAL モードの ? は、Vim の挙動でヘルプメニューを出す
- NORMAL モードの / は、標準モードの Ctrl+R と同じく履歴検索を開く
検証#
Claude Code は、割り当てファイルを検証し、次の場合にデバッグログへ警告を書きます。
- 解析エラー(不正な JSON や構造)
ctl+kのような、綴りの誤った修飾キー。分からない部分は捨てられ、残ったキー(この例ではk)への割り当てとして適用される- 不正なコンテキスト名
- 文字列でも
nullでもないアクション値などの不正な値 - 登録済みアクションの綴り違いなど、未知のアクション名。その割り当ては飛ばされ、そのキーの既定の割り当てが残る
- 予約済みのショートカットとの衝突
- 同じコンテキスト内の重複した割り当て
詳細を見るには、--debug を付けて Claude Code を起動します。
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。