Claude Media
Claude Codeショートカット一覧 — 既定操作とkeybindings.jsonでのカスタマイズ

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表示)・acceptEditsplanなどを循環
Ctrl+Bできること実行中タスクのバックグラウンド化補足tmux使用時は2回押す必要がある
Ctrl+Tできることタスクチェックリストの表示切り替え補足実行中シェルの一覧(/tasks)とは別物
Ctrl+X Ctrl+Kできること実行中のバックグラウンドサブエージェントを全停止補足3秒以内に2回押して確定

macOSではAlt+BAlt+FAlt+YAlt+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+KCtrl+UCtrl+Wで消した文字列を貼り付け
Alt+B / Alt+Fできること単語単位でカーソルを前後移動
Ctrl+_(またはCtrl+Shift+-)できること直前の編集を取り消し

macOSのiTerm2やTerminal.appではCmd+BackspaceCtrl+Uに、Option+DeleteCtrl+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.jsonvimInsertModeRemapsを使います。

{
  "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を含む扱いになり、Kshift+kと同じです。修飾キーと組み合わせた大文字(ctrl+K)は表記上の違いに過ぎず、ctrl+kと同一に扱われます。コードはctrl+k ctrl+sのようにスペース区切りで表します。

キーバインド設定でよくあるつまずき

上記以外にも、設定してから「なぜ動かないのか」で詰まりやすい点がいくつかあります。

  • cmd系の修飾キーは多くの端末で効かない: cmd/command/super/winはKitty keyboard protocolやxtermのmodifyOtherKeysに対応したターミナルでしか検出されません。どこでも動かしたいならctrlmetaを使います。
  • コードのプレフィックスは一部だけ外せない: ctrl+x ctrl+kctrl+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:setAsDefaultmodelPicker:thisSessionOnlyに改名(操作キーもdからsへ変更)

特にCtrl+FからCtrl+X Ctrl+Kへの変更は、readlineの標準的なカーソル移動と衝突していたための是正です。バックグラウンドエージェントの停止キーをCtrl+Fで覚えている場合は、現在のバージョンでは反応しません。

よくある質問

keybindings.jsonを編集したらClaude Codeの再起動は必要ですか

必要ありません。ファイルの変更は自動的に検知され、その場で反映されます。

特定のショートカットが反応しないときは何を確認しますか

まず予約済みショートカット(Ctrl+CCtrl+DCtrl+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完全ガイドで確認できます。

この記事を共有:XはてブLinkedIn