Claude Codeショートカット一覧 — ctrl zや音声入力のキーと変更手順
Claude Codeのショートカットキーを早見表で確認できます。Ctrl+Zの意味、音声入力のキー、~/.claude/keybindings.jsonで割り当てを変える手順とつまずきどころも扱います。
Claude Codeにはコンテキストごとに数十のキーボードショートカットが用意されています。キーバインドとは、特定のキー入力に機能(アクション)を紐づける設定のことです。v2.1.18以降は~/.claude/keybindings.jsonで既定のキー割り当てを変更でき、コード(chord、連続キー入力)も組めます。Ctrl+Zは取り消しではなくプロセスの一時停止で、音声入力はSpace長押しです。まず早見表で既定の操作を押さえ、後半で「このキーは変えられるのか」「なぜ効かないのか」を切り分けます。用語とコマンドも含めて初週の順に引きたいときはClaude Codeのチートシートが向いています。
Claude Codeショートカットで押さえるべき基本操作
まず覚える価値が高いのは、中断・終了・画面操作・履歴検索の系統です。以下は使用頻度が高い操作を絞った早見表です。
| ショートカット | できること | 補足 |
|---|---|---|
Ctrl+C | できること中断、または入力をクリア | 補足実行中の処理があれば中断。無ければ1回目でクリア、2回目で終了 |
Ctrl+D | できることセッション終了 | 補足1回目は確認表示、800ms以内の2回目で終了。入力欄に文字があるときはカーソル後ろの1文字を削除 |
Ctrl+O | できることトランスクリプトビューアーの開閉 | 補足ツール実行の詳細とタイムスタンプ、使用モデルを表示 |
Ctrl+R | できることコマンド履歴の逆検索 | 補足過去のプロンプトを対話的に検索 |
Ctrl+G / Ctrl+X Ctrl+E | できることプロンプトを既定のテキストエディタで開く | 補足長いプロンプトを書くときに使う |
Ctrl+S | できること入力中の文章を退避 / 復元 | 補足文字がある状態で押すと退避して入力欄が空になり、空の状態でもう一度押すと戻る |
Ctrl+L | できること画面の再描画 | 補足入力と会話履歴は残したまま、崩れた表示を直す |
Ctrl+Z | できることClaude Codeを一時停止してシェルへ戻る | 補足Unix系のみ。fgで再開。入力の取り消しはCtrl+_ |
Esc | できること応答やツール呼び出しの中断、ダイアログを閉じる | 補足ダイアログ表示中はダイアログを閉じる動作が優先される |
Escを2回 | できること入力欄のクリア、または巻き戻しメニュー | 補足入力が空の状態で押すとrewindメニューが開く |
Ctrl+B | できること実行中タスクのバックグラウンド化 | 補足tmux使用時は2回押すか、Ctrl+X Ctrl+Bを使う |
Ctrl+T | できることタスクチェックリストの表示切り替え | 補足実行中シェルの一覧(/tasks)とは別物 |
Ctrl+X Ctrl+K | できること実行中のバックグラウンドサブエージェントを全停止 | 補足3秒以内に2回押して確定。そのセッションではアーティファクトの自動返信もオフになる |
Ctrl+Lの挙動は版で変わっています。v2.1.126より前は入力欄までクリアされ、現在は再描画だけです。
macOSではAlt+B・Alt+F・Alt+D・Alt+Y・Alt+Pを使う前に、ターミナル側でOptionキーをMetaとして送る設定が必要です。iTerm2なら「Settings → Profiles → Keys → General」でLeft/Right Optionを「Esc+」にします。Apple Terminalなら「Settings → Profiles → Keyboard」の「Use Option as Meta Key」にチェックを入れます。一方Option+T(拡張思考の切り替え)はこの設定なしでもmacOS上でそのまま動きます。
Ctrl+Rのコマンド履歴の逆検索は、フルスクリーン表示やVimモードだと挙動が微妙に変わります。Ctrl+Oのトランスクリプト検索との使い分けも含めてCtrl+R履歴検索でClaude Codeの過去プロンプトを再利用するにまとめています。
入力欄が空の状態で?を押すと、アプリ内にショートカットのヘルプパネルが開きます。何を押したか忘れたときはコマンドを覚えるよりこちらが早いです。
AIの応答をクリップボードへ送る専用のショートカットはなく、代わりに/copyコマンドを使います。コードブロックだけを選んで送る、SSH越しではwキーでファイルへ書き出す、といった操作はClaude Code copyコマンドでコードブロックだけを送るにまとめています。
文字入力とマルチライン入力のショートカット
入力欄の編集はreadline系のキー操作に準拠しています。以前はkeybindingFlavor設定で切り替える仕組みでしたが、v2.1.261以降はこの設定は非推奨で効果がありません。経緯はkeybindingFlavorの記事で扱っています。
| ショートカット | できること |
|---|---|
Ctrl+A / Ctrl+E | できること現在の論理行の先頭 / 末尾へ移動 |
Ctrl+K | できることカーソルから行末まで削除 |
Ctrl+U | できることカーソルから行頭まで削除。複数行入力では繰り返すと行をまたいで消える |
Ctrl+W | できること直前の空白までを削除(パスや--flag=valueが1回で消える) |
Alt+D | できることカーソル位置から単語の終わりまで削除 |
Ctrl+Y | できることCtrl+K・Ctrl+U・Ctrl+Wで消した文字列を貼り付け |
Alt+Y(Ctrl+Yの直後) | できること過去に消した文字列を順に切り替え |
Alt+B / Alt+F | できること単語単位でカーソルを前後移動 |
Ctrl+_(またはCtrl+Shift+-) | できること直前の編集を取り消し |
Ctrl+Wの動作はBashに合わせて変わった部分です。Alt+B・Alt+F・Alt+Dは英数字の連なりを1語と数え、_・.・/などの記号で語が区切れます。そのためsrc/utils/foo.tsのようなパスは、Ctrl+Wなら1回、Alt+Dなら記号ごとに複数回の操作になります。
単語を消すキーの使い分け
Ctrl+W
パスやフラグを丸ごと消したいときのキーです。src/utils/foo.tsなら1回で消えます。
Option+Delete / Ctrl+Backspace
macOSではOption+Delete、WindowsではCtrl+Backspaceが単語単位の削除です。記号で区切られた語を1つずつ消すときに向きます。
macOSのiTerm2やTerminal.appでは、Cmd+BackspaceがCtrl+Uに対応づけられています。
複数行の入力には5通りの方法があります。\に続けてEnterはどのターミナルでも動作し、Shift+EnterはiTerm2・WezTerm・Ghostty・Kitty・Warp・Apple Terminal・Windows Terminalでは設定なしに使えます。VS CodeやCursorなど残りの環境では/terminal-setupを実行してバインディングを入れる必要があります。Ctrl+Jは設定不要でどの環境でも改行を挿入できます。残る2つは、macOSでOption as Metaを有効にしたあとのOption+Enterと、複数行のテキストの貼り付けです。
/terminal-setupClaudeの作業中に打った追加指示を今すぐ送りたいときは、Ctrl+EnterかCtrl+X Ctrl+S(v2.1.275以降)を使います。入力欄の下書きもまとめて送られます。Ctrl+Enterが通常のEnterとして届く端末では、下書きがキューに入るだけです。Ctrl+X Ctrl+Sはどの端末でも使えます。
権限モード・モデル切り替え・音声入力のショートカット
作業の進め方そのものに関わるショートカットは、コンテキストを問わずChat入力中に使えます。
| ショートカット | できること | 補足 |
|---|---|---|
Shift+Tab | できること権限モードを循環 | 補足default(Manual表示)・acceptEdits・planを回り、使える環境ではbypassPermissions・autoも加わる。Windowsで仮想端末入力が無効な場合はAlt+Mが既定になる。autoからは1回でdefaultに戻る |
Option+P(macOS) / Alt+P(Windows・Linux) | できることモデルピッカーを開く | 補足入力中のプロンプトを消さずに切り替えられる |
Option+T(macOS) / Alt+T(Windows・Linux) | できること拡張思考モードの切り替え | 補足Opus 5.5・Sonnet 5.5・Fableモデルは常時拡張思考を使うため効果なし |
Option+O(macOS) / Alt+O(Windows・Linux) | できることfast modeの切り替え | 補足Opusを高速化するモード |
Space長押しまたはタップ | できること音声入力(dictation) | 補足有効化と/voice tapでの切り替えが前提。Chatコンテキストのvoice:pushToTalkで別のキーに変えられる |
権限モードの切り替えはPlanモードの運用と直結します。計画立案と実行を頻繁に往復するなら、Shift+Tabで毎回メニューを開かずに循環させたほうが速く回せます。
音声入力はsettings.json側の設定が前提です。voiceEnabled・voiceキーの書き方とhold/tapモードの違いはvoiceEnabled/voice設定でClaude Codeの音声入力を使うにまとめています。
/themeピッカーの中だけで効くショートカットもあります。Ctrl+Tはそこではタスクチェックリストではなく、コードブロックのシンタックスハイライトの切り替えです。
トランスクリプトビューアーとVimモードのショートカット
Ctrl+Oで開くトランスクリプトビューアー内では、別のショートカット体系が有効になります。
| ショートカット | できること | 前提 |
|---|---|---|
{ / } | できること前 / 次のユーザープロンプトへ移動 | 前提フルスクリーン表示 |
Ctrl+E | できること全内容表示の切り替え | 前提クラシックレンダラーのみ |
[ | できること会話全体をターミナルのネイティブスクロールバックへ書き出す。Cmd+Fやtmuxのコピーモードで検索できる | 前提フルスクリーン表示 |
v | できること会話を一時ファイルに書き出し$VISUAL/$EDITORで開く | 前提フルスクリーン表示 |
q / Ctrl+C / Esc | できることトランスクリプトビューを終了 | 前提なし |
どちらのレンダラーが有効かは、引数なしの/tuiで確認できます。
Vimスタイルの編集は/configのEditor modeから有効にできます。NORMALモードではh/j/k/lでの移動、ddでの行削除、yyでの行コピーなど、標準的なVim操作がひととおり揃っています。ただしVimのモーションキー自体はkeybindings.jsonでリマップできません。jjのような2キーのINSERTモード脱出シーケンスを作りたい場合は、settings.jsonのvimInsertModeRemaps(v2.1.208以降)を使います。使えるキー操作の一覧はClaude Code Vimモードの使い方とキー操作一覧で網羅しています。
{
"editorMode": "vim",
"vimInsertModeRemaps": { "jj": "<Esc>" }
}Vimモードとキーバインドは独立した仕組みです。VimのEscapeはINSERTからNORMALへの切り替えに専念し、chat:cancel(応答の中断)は発火しません。ほとんどのCtrl系ショートカットはVimモードを素通りしてキーバインドシステムに届きます。NORMALモードの/は履歴検索を開き、標準モードのCtrl+Rと同じ動きです。
keybindings.jsonでキー割り当てを変更する
変更の流れは3段階です。
キー割り当てを変えて確かめる流れ
- 1
/keybindings で設定ファイルを開く
~/.claude/keybindings.jsonが無ければ作成され、あれば開きます。 - 2
bindings 配列にコンテキストとキーを書く
保存すると自動で検知・反映され、再起動は要りません。
- 3
動かなければ --debug で警告を見る
JSONの誤りや綴り違いは、読み込み時にデバッグログへ警告として記録されます。
/keybindingsの入口は次のとおりです。
/keybindings設定ファイルはbindings配列を持つオブジェクトで、各ブロックがコンテキストとキー割り当てのペアです。/effortスライダーの左右キーやUltracodeトグルの再割り当てはeffortSliderキーバインドの記事で扱っています。
{
"$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
}
}
]
}この例はCtrl+Eでエディタを開き、Ctrl+Sの既定の割り当て(入力の退避)を外します。nullは「割り当てを外す」の意味です。
アクションはchat:submit(メッセージ送信)やapp:toggleTodos(ToDoチェックリストの表示切り替え)のように名前空間:アクションの形式を取ります。コンテキストはGlobal(全体)・Chat(メイン入力)・Transcript(トランスクリプトビューアー)など22種類に分かれ、それぞれに専用のアクションが用意されています。全種類は次の折りたたみにまとめました。
コンテキスト一覧(全22種)
Global— 全体に適用Chat— メイン入力Autocomplete— 補完メニュー表示中Settings— 設定メニューConfirmation— 権限・確認ダイアログTabs— タブ切り替えHelp— ヘルプメニュー表示中Transcript— トランスクリプトビューアーHistorySearch— 履歴検索(Ctrl+R)Task— タスクがフォアグラウンドで実行中ThemePicker— テーマ選択ダイアログ(/themeコマンドでの切り替えやカスタムテーマの作り方はClaude Codeカラーテーマの設定とカスタムテーマの作り方を参照)Attachments— 画像添付の選択操作Footer— フッターのインジケーター操作(タスク・チーム・diff・アーティファクト)MessageSelector— 巻き戻し・要約ダイアログのメッセージ選択DiffDialog— diffビューアーの操作DiffPanel— diffパネルが開いているときModelPicker— モデルピッカーの効果レベルEffortSlider—/effortで開くスライダーSelect— 汎用の選択・リスト部品Plugin— プラグインダイアログAgents— エージェントビュー(claude agents)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のようにスペース区切りで表します。3秒ルールと接頭辞の解除はClaude Codeのkeybindingsでchordsを組む書き方で扱っています。
変えたいキーが変えられないとき
「効かない」には、そもそも変更の対象外というものと、設定の書き方の問題というものがあります。先に前者を切り分けます。
keybindings.jsonで変えられない3系統
予約済みのキー
Ctrl+C・Ctrl+Dは割り込みと終了が固定です。Ctrl+MはEnter、Ctrl+[はEscape、Ctrl+IはTabとして届くため区別できません。Ctrl+Hはバックスペースのバイトを送り、Caps Lockはターミナルアプリに届きません。入力欄の編集キー
Ctrl+W・Alt+B・Alt+F・Alt+Dなどの単語単位の編集キーは再割り当てできません。keybindingsにはこれらのアクションが用意されていません。Vimのモーションキー
h/j/k/lなどはVimモード側の処理で、keybindingsの対象外です。
Ctrl+Eは行末移動の既定キーですが、Chatコンテキストのchat:externalEditorに割り当て直す例がkeybindingsのページにあります。
対象外ではないのに動かないときは、次の点を確認します。
cmd系の修飾キーは多くの端末で効かない:cmd/command/super/winはKitty keyboard protocolやxtermのmodifyOtherKeysに対応したターミナルでしか検出されません。どこでも動かしたいならctrlかmetaを使います。- コードのプレフィックスは一部だけ外せない:
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単体を再利用するには、これらを全部nullで外してから割り当てます。1つでも残ると、押した時点でコード待ち状態に入ります。 - tmuxやscreenとの衝突:
Ctrl+Bはtmuxのプレフィックスキー、Ctrl+AはGNU screenのプレフィックスキーと重なります。Ctrl+ZはUnixのプロセス一時停止(SIGTSTP)と衝突します。 - 綴りの誤りは黙って別の動きになる:
ctl+kのように修飾キーを綴り間違えると、認識できない部分が捨てられてkだけに割り当てが付きます。存在しないアクション名はその割り当てごと読み飛ばされ、既定の割り当てが残ります。どちらもデバッグログの警告にだけ出ます。 - 設定ミスは
--debugで確認する: JSONの構文エラー・存在しないコンテキスト名・予約済みショートカットとの衝突・同一コンテキスト内の重複も警告の対象です。
警告の確認に使う起動オプションは、v2.1.287のclaude --helpで次のように表示されます。
claude --help | grep -i debug -d, --debug [filter] Enable debug mode with optional category
--debug-file <path> Write debug logs to a specific file path
(implicitly enables debug mode)--debug-fileを使うと、警告をファイルに書き出して後からgrepできます。
既定のショートカットはこれまでどう変わったか
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を奪っていたため。同じ版でCtrl+X Ctrl+Eを外部エディタの別名として追加 |
| v2.1.84 | 変更内容"ctrl+x ctrl+k": nullのように既定のコードを外しても、接頭辞がコード待ち状態に入る問題を修正 |
| v2.1.101 | 変更内容カスタムキーバインドがBedrock・Vertexなどサードパーティ経由で読み込まれない不具合を修正 |
| v2.1.153 | 変更内容modelPicker:setAsDefaultがmodelPicker:thisSessionOnlyに改名(操作キーもdからsへ変更) |
| v2.1.261 | 変更内容Ctrl+Wが空白までの削除になり、keybindingFlavorは効果を失う |
| v2.1.275 | 変更内容送信待ちメッセージを今すぐ送るCtrl+Enter(Ctrl+X Ctrl+S)を追加 |
よくある質問
プロジェクトの.claude/settings.jsonで自分のキーバインドを上書きされませんか
keybindings.jsonは常に~/.claude/keybindings.jsonというユーザー単位のファイルで、プロジェクト側の設定から変更されることはありません。関連するVimのvimInsertModeRemaps設定も、ユーザー設定ファイル・--settingsフラグ・管理者設定からのみ読み込まれ、チェックアウトしたリポジトリの.claude/settings.jsonは無視される仕組みです。
まとめ
全部を作り直さず、毎日打つ数個のキーだけを~/.claude/keybindings.jsonに書く形なら、既定が変わったときの影響が小さく済みます。全体の機能はClaude Codeの全体像で確認できます。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。