Claude Codeショートカット一覧 — 既定操作とkeybindings.jsonでのカスタマイズ
Claude Codeの主要ショートカットを早見表で確認し、~/.claude/keybindings.jsonでキー割り当てを変更する手順とつまずきどころをまとめます。
Claude Codeにはコンテキストごとに数十のキーボードショートカットが用意されています。キーバインドとは、特定のキー入力に機能(アクション)を紐づける設定のことです。v2.1.18以降は~/.claude/keybindings.jsonで既定のキー割り当てを自分好みに変更でき、コード(chord、連続キー入力)も組めます。よく使う操作から早見表で確認し、後半でカスタマイズの手順とつまずきやすい点を扱います。
Claude Codeショートカットで押さえるべき基本操作
まず覚える価値が高いのは、中断・終了・画面操作・履歴検索の系統です。以下は使用頻度が高い操作を絞った早見表です。
| ショートカット | できること | 補足 |
|---|---|---|
Ctrl+C | できること中断、または入力をクリア | 補足実行中の処理があれば中断。無ければ1回目でクリア、2回目で終了 |
Ctrl+D | できることセッション終了 | 補足1回目は確認表示、800ms以内の2回目で終了 |
Ctrl+O | できることトランスクリプトビューアーの開閉 | 補足ツール実行の詳細とタイムスタンプ、使用モデルを表示 |
Ctrl+R | できることコマンド履歴の逆検索 | 補足過去のプロンプトを対話的に検索 |
Ctrl+L | できること画面の再描画 | 補足表示が崩れたときの復旧に使う。フルスクリーン表示では2秒以内に2回押すと/clearが走る |
Esc | できること応答やツール呼び出しの中断、ダイアログを閉じる | 補足ダイアログ表示中はダイアログを閉じる動作が優先される |
Escを2回 | できること入力欄のクリア、または巻き戻しメニュー | 補足入力が空の状態で押すとrewindメニューが開く |
Shift+Tab | できること権限モードの切り替え | 補足default(Manual表示)・acceptEdits・planなどを循環 |
Ctrl+B | できること実行中タスクのバックグラウンド化 | 補足tmux使用時は2回押す必要がある |
Ctrl+T | できることタスクチェックリストの表示切り替え | 補足実行中シェルの一覧(/tasks)とは別物 |
Ctrl+X Ctrl+K | できること実行中のバックグラウンドサブエージェントを全停止 | 補足3秒以内に2回押して確定 |
macOSではAlt+B・Alt+F・Alt+Y・Alt+P(モデルピッカーを開く)を使う前に、ターミナル側でOptionキーをMetaとして送る設定が必要です。iTerm2なら「Profiles → Keys → General」でLeft/Right Optionを「Esc+」に設定します。一方Option+T(拡張思考の切り替え)はこの設定なしでもmacOS上でそのまま動きます。
入力欄が空の状態で?を押すと、アプリ内にショートカットのヘルプパネルが開きます。何を押したか忘れたときはコマンドを覚えるよりこちらが早いです。
文字入力とマルチライン入力のショートカット
入力欄の編集はreadline系のキー操作にほぼ準拠しています。
| ショートカット | できること |
|---|---|
Ctrl+A / Ctrl+E | できること行頭 / 行末へ移動 |
Ctrl+K | できることカーソルから行末まで削除 |
Ctrl+U | できることカーソルから行頭まで削除 |
Ctrl+W | できること直前の単語を削除 |
Ctrl+Y | できることCtrl+K・Ctrl+U・Ctrl+Wで消した文字列を貼り付け |
Alt+B / Alt+F | できること単語単位でカーソルを前後移動 |
Ctrl+_(またはCtrl+Shift+-) | できること直前の編集を取り消し |
macOSのiTerm2やTerminal.appではCmd+BackspaceがCtrl+Uに、Option+DeleteがCtrl+Wに対応づけられています。WindowsではCtrl+Backspaceが単語削除として動きます。
複数行の入力は5通りの方法があります。\に続けてEnterはどのターミナルでも動作し、Shift+EnterはiTerm2・WezTerm・Ghostty・Kitty・Warp・Apple Terminal・Windows Terminalでは設定なしに使えます。VS CodeやCursorなど残りの環境では/terminal-setupを実行してバインディングを入れる必要があります。Ctrl+Jは設定不要でどの環境でも改行を挿入できる、いわば保険的な選択肢です。
/terminal-setup権限モード・モデル切り替え・音声入力のショートカット
作業の進め方そのものに関わるショートカットは、コンテキストを問わずChat入力中に使えます。
| ショートカット | できること | 補足 |
|---|---|---|
Shift+Tab | できること権限モードを循環 | 補足Windowsで仮想端末入力が無効な場合はAlt+Mが既定になる |
Option+P(macOS) / Alt+P(Windows・Linux) | できることモデルピッカーを開く | 補足入力中のプロンプトを消さずに切り替えられる |
Option+T(macOS) / Alt+T(Windows・Linux) | できること拡張思考モードの切り替え | 補足Fable 5は常時拡張思考を使うため効果なし |
Option+O(macOS) / Alt+O(Windows・Linux) | できることfast modeの切り替え | 補足Opusを高速化するモード |
Space長押しまたはタップ | できること音声入力(dictation) | 補足有効化と/voice tapでの切り替えが前提 |
権限モードの切り替えはPlanモードの運用と直結します。計画立案と実行を頻繁に往復するなら、Shift+Tabで毎回メニューを開かずに循環させたほうが速く回せます。
トランスクリプトビューアーとVimモードのショートカット
Ctrl+Oで開くトランスクリプトビューアー内では、別のショートカット体系が有効になります。
| ショートカット | できること |
|---|---|
Ctrl+E | できること全内容表示の切り替え(クラシックレンダラーのみ) |
[ | できること会話全体をターミナルのネイティブスクロールバックへ書き出す |
v | できること会話を一時ファイルに書き出し$VISUAL/$EDITORで開く |
q / Ctrl+C / Esc | できることトランスクリプトビューを終了 |
Vimスタイルの編集は/configのEditor modeから有効にできます。NORMALモードではh/j/k/lでの移動、ddでの行削除、yyでの行コピーなど、標準的なVim操作がひととおり揃っています。ただしVimのモーションキー自体はkeybindings.jsonでリマップできません。jjのような2キーのINSERTモード脱出シーケンスを作りたい場合は、settings.jsonのvimInsertModeRemapsを使います。
{
"editorMode": "vim",
"vimInsertModeRemaps": { "jj": "<Esc>" }
}このキーバインディングとVimモードは独立した仕組みとして動きます。VimのEscapeはINSERTからNORMALへの切り替えに専念し、chat:cancel(応答の中断)は発火しません。ほとんどのCtrl系ショートカットはVimモードを素通りしてキーバインドシステムに届きます。
keybindings.jsonでキー割り当てを変更する
/keybindingsを実行すると、~/.claude/keybindings.jsonが無ければ作成され、あれば開きます。ファイルへの変更は自動で検知・反映されるため、Claude Codeの再起動は不要です。
/keybindings設定ファイルはbindings配列を持つオブジェクトで、各ブロックがコンテキストとキー割り当てのペアです。
{
"$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+u": null
}
}
]
}アクションはchat:submit(メッセージ送信)やapp:toggleTodos(タスク一覧表示)のように名前空間:アクションの形式を取ります。コンテキストはGlobal(全体)・Chat(メイン入力)・Transcript(トランスクリプトビューアー)など19種類に分かれ、それぞれに専用のアクションが用意されています。全種類は次の折りたたみにまとめました。
コンテキスト一覧(全19種)
Global— 全体に適用Chat— メイン入力Autocomplete— 補完メニュー表示中Settings— 設定メニューConfirmation— 権限・確認ダイアログTabs— タブ切り替えHelp— ヘルプメニュー表示中Transcript— トランスクリプトビューアーHistorySearch— 履歴検索(Ctrl+R)Task— バックグラウンドタスク実行中ThemePicker— テーマ選択ダイアログAttachments— 画像添付の選択操作Footer— フッターのインジケーター操作MessageSelector— 巻き戻し・要約ダイアログのメッセージ選択DiffDialog— diffビューアーの操作ModelPicker— モデルピッカーの効果レベルSelect— 汎用の選択・リスト部品Plugin— プラグインダイアログScroll— フルスクリーンモードでのスクロールとテキスト選択
v2.1.205より前は/doctor診断画面用のDoctorコンテキストとdoctor:fixアクションも存在しましたが、現在は廃止されています。
キーの表記にはいくつかの決まりがあります。修飾キーは+で連結して表します。
| 表記 | 意味 |
|---|---|
ctrl / control | 意味Ctrlキー |
shift | 意味Shiftキー |
alt / opt / option / meta | 意味macOSのOption、Windows・LinuxのAlt |
cmd / command / super / win | 意味macOSのCommand、WindowsのWindowsキー、LinuxのSuperキー |
単独の大文字アルファベットはShiftを含む扱いになり、Kはshift+kと同じです。修飾キーと組み合わせた大文字(ctrl+K)は表記上の違いに過ぎず、ctrl+kと同一に扱われます。コードはctrl+k ctrl+sのようにスペース区切りで表します。
キーバインド設定でよくあるつまずき
上記以外にも、設定してから「なぜ動かないのか」で詰まりやすい点がいくつかあります。
cmd系の修飾キーは多くの端末で効かない:cmd/command/super/winはKitty keyboard protocolやxtermのmodifyOtherKeysに対応したターミナルでしか検出されません。どこでも動かしたいならctrlかmetaを使います。- コードのプレフィックスは一部だけ外せない:
ctrl+x ctrl+kとctrl+x ctrl+eのように同じプレフィックスを共有するコードは、共有する側を全部nullで解除しないとctrl+x単体を単独のキーとして再利用できません。1つだけ残っていると、そのプレフィックスは押した時点でコード待ち状態に入ってしまいます。 - tmuxやscreenとの衝突:
Ctrl+Bはtmuxのプレフィックスキーと、Ctrl+AはGNU screenのプレフィックスキーと重なります。tmux利用時はCtrl+Bを2回押す必要があります。Ctrl+ZはUnixのプロセス一時停止(SIGTSTP)と衝突します。 - 設定ミスは
--debugで確認する: JSONの構文エラー・存在しないコンテキスト名・予約済みショートカットとの衝突・端末との衝突・同一コンテキスト内の重複は、読み込み時に警告として記録されます。claude --debugで起動すると詳細を確認できます。
既定のショートカットはこれまでどう変わったか
Claude Codeのショートカットは固定ではなく、公式changelogでたびたび見直されています。古い設定や記憶のまま使っていると、思った操作にならないことがあります。
| バージョン | 変更内容 |
|---|---|
| v2.1.18 | 変更内容キーバインドのカスタマイズ機能自体を追加。/keybindingsで設定を開始 |
| v2.1.49 | 変更内容バックグラウンドエージェントの停止にCtrl+Fを追加(2回押しで確定) |
| v2.1.83 | 変更内容停止ショートカットをCtrl+FからCtrl+X Ctrl+Kへ変更。readlineのforward-charを奪っていたため |
| v2.1.101 | 変更内容カスタムキーバインドがBedrock・Vertexなどサードパーティ経由で読み込まれない不具合を修正 |
| v2.1.153 | 変更内容modelPicker:setAsDefaultがmodelPicker:thisSessionOnlyに改名(操作キーもdからsへ変更) |
特にCtrl+FからCtrl+X Ctrl+Kへの変更は、readlineの標準的なカーソル移動と衝突していたための是正です。バックグラウンドエージェントの停止キーをCtrl+Fで覚えている場合は、現在のバージョンでは反応しません。
よくある質問
keybindings.jsonを編集したらClaude Codeの再起動は必要ですか
必要ありません。ファイルの変更は自動的に検知され、その場で反映されます。
特定のショートカットが反応しないときは何を確認しますか
まず予約済みショートカット(Ctrl+C・Ctrl+D・Ctrl+M・Caps Lock)に該当していないかを確認します。次にターミナルマルチプレクサーとの衝突(tmuxのCtrl+Bなど)を疑い、それでも分からなければclaude --debugで起動して読み込み時の警告ログを見ます。
Vimモードのキーもkeybindings.jsonでリマップできますか
できません。Vimのモーションキー(h/j/k/lなど)はkeybindings.jsonの対象外です。2キーのINSERTモード脱出シーケンスだけは、settings.jsonのvimInsertModeRemapsで個別に設定します。
cmdキー(Windowsキー/Superキー)を使ったショートカットが効きません
多くのターミナルはSuperモディファイアそのものを報告しないため、cmd/command/super/win系の指定は検出されないことがあります。どの環境でも動かしたい場合はctrlまたはmetaを使います。
プロジェクトの.claude/settings.jsonで自分のキーバインドを上書きされませんか
keybindings.jsonは常に~/.claude/keybindings.jsonというユーザー単位のファイルで、プロジェクト側の設定から変更されることはありません。関連するVimのvimInsertModeRemaps設定も、ユーザー設定ファイル・--settingsフラグ・管理者設定からのみ読み込まれ、チェックアウトしたリポジトリの.claude/settings.jsonは無視される仕組みです。
まとめ
Claude Codeのショートカットは、まず基本操作の早見表を手元に置いておくだけでも操作が速くなります。既定のキーで足りない部分だけ~/.claude/keybindings.jsonを編集すれば十分で、全部を作り直す必要はありません。設定した内容が動かないときは、予約済みショートカットとターミナルの衝突を疑うところから確認すると早く原因にたどり着けます。全体の機能像はClaude Code完全ガイドで確認できます。