要約
Claude Codeに搭載された主要なキーボードショートカットを、使用頻度と生産性への影響度に基づきTier S/A/Bの3段階に分類し、各ショートカットの概要とユースケースを網羅的に解説する。Tier S・Tier Aの全ショートカットに実演デモを用意し、実際の操作イメージを掴める構成とした。
対象読者: Claude Codeを日常的に使っている方、またはこれから本格的に活用したい方
検証環境: Claude Code v2.1.80(2026年3月時点)
この記事を読むことで得られるメリット
この記事を読むことで以下のことが分かる:
- Claude Codeのキーボードショートカットを重要度別に把握でき、どのショートカットから覚えるべきか判断できる
- 各ショートカットの具体的なユースケースと実演デモにより、日常の開発ワークフローに即座に組み込める
- keybindings.jsonによるカスタマイズの基本を把握できる
この記事を読むのにかかる時間
約20分
環境
- macOS Apple M4 Max Sequoia 15.1
- Claude Code v2.1.80
キーボードショートカットのTier分類
Claude Codeのキーボードショートカットは数が多いため、「使用頻度と開発効率への影響度」でTier分類すると効率的に覚えられる。以下がその一覧である。
Tier | ショートカット | 位置づけ |
|---|---|---|
S |
| 使わないと作業効率が大幅に低下する最重要ショートカット |
A |
| 使いこなすと作業効率が明確に向上 |
B |
| 特定の場面で役立つ補助的なショートカット |
まずはTier Sを確実に指に覚えさせ、次にTier Aを日常に組み込むことを推奨する。Tier Bは必要になったタイミングで参照すれば十分である。
スラッシュコマンドとの最大の違いは「キーボードから手が離れない」こと。 コマンド入力の数秒が積み重なると、1日で数十分の差になる。
Tier S:使わないと作業効率が大幅に低下する最重要ショートカット
日常的に最も使用頻度が高いショートカット群である。基本操作、テキスト編集、入力補助の3カテゴリに分かれる。
基本操作
ショートカット | 概要 | ユースケース |
|---|---|---|
| パーミッションモードを切り替え: auto-accept edits on / plan mode on / bypass permissions on | 複雑なタスクはまずplan modeで計画を立てる→実装フェーズでauto-acceptに切り替え→承認なしで連続実行→危険な操作の前にデフォルトに戻す |
| 現在の処理を即座にキャンセル | Claudeが誤った方向にコード変更を始めた→ |
| 外部エディタでプロンプトを編集 | 長文プロンプトをフルエディタで編集可能。30行のAPI仕様→ |
| 現在のプロンプトをスタッシュ(一時保存) | 入力中のプロンプトを一時退避し、別の質問を処理後に復元。gitのstashに類似したClaude Code独自の機能 |
| クリップボードから画像を直接貼り付け | スクリーンショットやエラー画面をファイル保存なしで即共有。レイアウト崩れ発見→スクリーンショット→ |
テキスト編集
bash/zshに慣れている開発者であれば、同じ感覚でプロンプトを編集できる。
ショートカット | 概要 | ユースケース |
|---|---|---|
| 画面表示をクリア(会話履歴はそのまま) | 大量の出力で画面が埋まった→ |
| カーソルから行末まで削除 | プロンプトの後半だけ書き直したい→ |
| カーソルから行頭まで削除 | 入力をやり直したい→ |
| 行頭 / 行末に移動 | 長いプロンプトの先頭にパスを追加したい→ |
マルチライン入力
長いプロンプトを改行しながら入力する方法は複数ある。
方法 | ショートカット | 対応環境 |
|---|---|---|
macOSデフォルト |
| macOS |
Shift+Enter |
| iTerm2は設定不要。その他は |
推奨: iTerm2を使っている場合はShift+Enterが最も直感的。VS Codeでは/terminal-setupを一度実行するだけでShift+Enterが使えるようになる。
クイックコマンド
プロンプト入力時に特定の文字で始めることで、特殊なモードに切り替わる。
入力 | 機能 | 備考 |
|---|---|---|
| スラッシュコマンドまたはスキルを呼び出し | Tab補完対応 |
| Bashモード(コマンドを直接実行) | トークン消費ゼロ |
| ファイルパスメンション | オートコンプリート対応 |
Tips: !によるBashモードはClaudeを介さずに直接コマンドを実行するため、git statusやlsなどの確認コマンドでトークンを消費したくない場合に特に有用である。
Shift+Tab デモ:パーミッションモードの動的切り替え
シチュエーション: 大きめのリファクタリングタスクに取り組みたい。まずは計画を立ててから実装に入り、安全な定型タスクは承認を省略して高速に進めたい。
コマンド実行:
(Shift+Tab)
✓ パーミッションモード: plan ||
> "認証機能をJWTからセッションベースに移行する計画を立てて"
→ 読み取り専用で影響範囲を調査、実装計画を提示(コード変更なし)
→ 計画に納得
(Shift+Tab)
✓ パーミッションモード: auto-accept >>
> "計画に基づいて実装して"
→ 12ファイルを自動修正(承認プロンプトなし)✓
> "lint警告も修正して"
→ 8ファイルを自動整形(承認プロンプトなし)✓
(Shift+Tab)
✓ パーミッションモード: normal(デフォルト)
> "DBマイグレーションを実行して"
→ マイグレーションファイルを確認しますか? [y/n]
→ 安全に個別確認しながら実行
plan modeで計画を立て、auto-acceptで高速に実装し、危険な操作の前にnormalに戻す。タスクのフェーズに応じてモードを切り替えることで、安全性と速度を両立できる。
各モードの使い分け:
モード | 説明 | 用途 |
|---|---|---|
Normal(デフォルト) | 都度確認 | 未知のコードベースや危険な操作 |
Auto-accept edits on | 明示的に許可済み、または一度許可されたコマンドを自動で許可 | 信頼できる定型タスク(lint修正、フォーマットなど) |
Plan mode on | ファイルを編集せず、読み取り専用で計画を立てる | 設計フェーズの調査、影響範囲の確認 |
Bypass permissions on |
| 自動パイプライン、夜間バッチ処理( |
注意点: Auto-acceptモードでは破壊的操作も確認なしで実行されるため、作業完了後は必ずNormalに戻すことを推奨する。Bypass permissionsモードは全アクセスが無制限になるため、/sandboxと併用してOSレベルの隔離を適用することを強く推奨する。
Ctrl+C デモ:誤った実装の即時停止
シチュエーション: 「認証ミドルウェアを追加して」と依頼したが、Claudeが既存のルーティング構造を全面的に書き換え始めた。すでに3ファイルが変更されており、このまま放置するとさらに被害が拡大する。
コマンド実行:
> "認証ミドルウェアを追加して"
→ Claudeがrouter.tsの全面リファクタリングを開始...
→ auth.ts を新規作成中...
→ middleware.ts を変更中...
(Ctrl+C)
⚠ 処理がキャンセルされました
> "既存のルーティング構造は変更せず、ミドルウェアだけ追加して"
→ 意図通りの最小限の変更のみ実行
放置すれば10ファイル以上の不要な変更が発生する場面を3ファイルで食い止められる。Ctrl+Cの後に/rewindで巻き戻し、Shift+Tabでplan modeに切り替えて計画を練り直してから再依頼する流れが鉄板パターンである。
Ctrl+G デモ:外部エディタでの長文プロンプト編集
シチュエーション: REST APIの新規エンドポイント実装を依頼したいが、要件が複雑で、リクエスト/レスポンスの型定義、バリデーションルール、エラーハンドリング仕様、テスト要件を含む30行以上のプロンプトを書く必要がある。
コマンド実行:
(Ctrl+G)
→ VS Codeが起動($EDITOR設定に依存)
[VS Codeで以下のようなプロンプトを快適に編集]
# POST /api/v2/orders エンドポイント実装
## リクエスト型
- userId: string (UUID形式)
- items: OrderItem[] (1件以上必須)
- couponCode?: string
## バリデーション
- itemsが空配列の場合は400
- 在庫不足の場合は409
...(30行以上の詳細仕様)
[保存して閉じる]
→ プロンプトがClaude Codeに送信される
→ 詳細な仕様に基づいた正確な実装が生成される
ターミナルの1行入力欄で30行のプロンプトを書く苦行(タイポ多発、修正困難)が、VS Codeの快適な編集環境に置き換わる。シンタックスハイライト、検索置換、マルチカーソルなどフルエディタの機能をプロンプト作成に活用可能である。
Ctrl+S デモ:プロンプトのスタッシュ(一時保存)
シチュエーション: API仕様を含む30行の実装指示を入力している途中で、チームメンバーから「今動いてるdev環境のNode.jsバージョン教えて」と急ぎの質問が来た。入力中のプロンプトを破棄したくないが、先に短い質問を処理したい。
コマンド実行:
> "POST /api/v2/orders エンドポイントを実装して。
リクエスト型は userId: string...(入力途中)
(Ctrl+S)
✓ プロンプトをスタッシュしました
> !node --version
v20.11.0
> (Ctrl+S)
✓ スタッシュからプロンプトを復元しました
> "POST /api/v2/orders エンドポイントを実装して。
リクエスト型は userId: string...(続きから入力再開)
gitのstashと同じ感覚で、入力中のプロンプトを一時退避して別の作業を挟み、完了後に復元できる。長いプロンプトを最初から書き直す手間(5-10分)がゼロになる。
Ctrl+V デモ:UIバグの画像共有
シチュエーション: フロントエンドの開発中、ブラウザでレイアウト崩れを発見。テキストだけで「ヘッダーの右端のボタンが下にずれている」と伝えるより、スクリーンショットを見せたほうが正確かつ速い。
コマンド実行:
[ブラウザでCmd+Shift+4でスクリーンショットをクリップボードに撮影]
> (Ctrl+V)
✓ 画像を貼り付けました [Image #1]
> "このスクリーンショットのヘッダー右端のレイアウト崩れを修正して"
→ Claudeが画像を分析:
「ヘッダーのflexコンテナでgapが不足しています。
header.tsxのL23のflex-wrapが原因です」
→ 的確な修正を実行
テキストだけでは「どのボタン?」「どう崩れている?」の往復が2-3回発生するところ、画像一枚で一発で伝わる。ファイルに保存してパスを指定する手間もなく、クリップボードから直接貼り付けできる。
活用パターン:
- UIバグ報告: レイアウト崩れやスタイリングの問題をスクリーンショットで即共有
- デザイン→実装: Figmaなどのモックアップを貼り付けて「これをReact + Tailwindで実装して」
- エラー画面の共有: ブラウザのエラー画面やコンソールログをそのままキャプチャ
Ctrl+L デモ:画面のリフレッシュ
シチュエーション: Claudeに大量のログ解析を依頼した結果、ターミナルが数百行の出力で埋まった。次の指示を入力したいが、画面が見づらく集中できない。
コマンド実行:
> "このエラーログを解析して原因を特定して"
→ [200行以上のログ解析結果が出力される]
→ 画面が出力で埋め尽くされている...
(Ctrl+L)
→ ターミナル画面全体がクリアされ、きれいな入力画面に
→ 会話履歴はそのまま保持されている
> "特定された原因に基づいて修正して"
→ Claudeは先ほどのログ解析結果を覚えているので、そのまま続きの指示が通る
画面表示だけがクリアされ、会話履歴やコンテキストは一切失われない。/clear(会話履歴ごとリセット)とは全く異なる操作であり、安全に何度でも使える。
Ctrl+K / Ctrl+U デモ:プロンプトの素早い修正
シチュエーション: 長いプロンプトを入力中に、後半部分だけ書き直したい。または、入力全体を破棄してやり直したい。
コマンド実行:
> "src/components/Header.tsxのスタイルを修正して、flexboxで中央揃えにして|"
↑カーソル位置
[カーソルから後ろを消したい場合]
(Ctrl+K)
> "src/components/Header.tsxのスタイルを修正して、|"
→ カーソル位置から行末までを一括削除
→ 続けて正しい指示を入力
[カーソルから前を消したい場合]
(Ctrl+U)
> "|"
→ カーソル位置から行頭までを一括削除
→ カーソルが行末にあれば結果的に全削除になる
Backspaceを何十回も押す必要がなく、一発で不要な部分を削除できる。bash/zshと同じ操作感である。
Ctrl+A / Ctrl+E デモ:カーソルの瞬間移動
シチュエーション: 長いプロンプトの先頭にパスを追加したい。矢印キーを長押しして先頭まで戻るのは時間がかかる。
コマンド実行:
> "のレイアウトをgridからflexboxに変更して、レスポンシブ対応もして|"
↑カーソル位置(末尾)
(Ctrl+A)
> "|のレイアウトをgridからflexboxに変更して、レスポンシブ対応もして"
↑カーソルが先頭にジャンプ
→ "src/components/Dashboard.tsx" を先頭に追記
(Ctrl+E)
> "src/components/Dashboard.tsxのレイアウトをgridからflexboxに変更して、レスポンシブ対応もして|"
↑カーソルが末尾にジャンプ
矢印キーの長押し(数秒)が、ワンキーで瞬時に移動できる。
マルチライン入力デモ:複数行のプロンプト
シチュエーション: 要件を箇条書きで整理してからClaudeに送りたい。1行で全部書くと読みにくい。
コマンド実行:
> "以下の要件でAPIを実装して:
(Shift+Enter)
- POST /api/users エンドポイント
(Shift+Enter)
- バリデーション: email必須、name 50文字以内
(Shift+Enter)
- エラー時は適切なHTTPステータスコードを返す"
(Enter で送信)
→ 構造化された指示でClaudeが的確に実装
Shift+Enterで改行、最後にEnterで送信。1行に詰め込むより意図が正確に伝わる。
クイックコマンドデモ:/ ! @ の使い分け
シチュエーション: 開発中にgitの状態確認、ファイル指定、コンテキスト管理を素早く行いたい。
コマンド実行:
[gitの状態をトークン消費ゼロで確認]
> !git status
→ Claudeを介さず直接実行。結果は会話コンテキストに追加される
[特定ファイルをClaudeに読ませる]
> @src/api/users.ts このファイルのエラーハンドリングを改善して
→ @でファイルパスをオートコンプリート付きで指定
[コンテキストを圧縮]
> /compact TypeScript移行の方針を保持
→ /でスラッシュコマンドを呼び出し
!はトークン消費ゼロ、@はファイルパス補完、/はスラッシュコマンド。3つを使い分けることで、Claudeとのやりとりが格段に効率的になる。
Tier A:使いこなすと作業効率が明確に向上
Tier Sほど頻繁ではないが、使いこなすと開発体験が明確に変わる4つのショートカットである。
ショートカット | 概要 | ユースケース |
|---|---|---|
| 現在のタスクをバックグラウンドに移行 | テスト待ち時間をゼロに。テストスイート実行→ |
| 会話とコード変更を過去の地点まで巻き戻し |
|
| Claude Codeを終了(EOFシグナル) |
|
| 前の単語を削除 | 入力中のタイポに気づいた→ |
Esc+EscがTier Aの理由: /rewindコマンドの方がわかりやすく、巻き戻し操作はコマンド名を見て意図を確認してから実行する方が安全なためである。
Ctrl+B デモ:テスト実行のバックグラウンド化
シチュエーション: API実装が完了し、テストスイート全件実行(約4分)をClaudeに依頼したい。しかしテスト結果を待つ間、フロントエンドの型定義更新も進めたい。
コマンド実行:
> "テストスイートを全件実行して、結果を報告して"
→ npm test を実行中... [テスト開始を確認]
(Ctrl+B)
✓ タスクをバックグラウンドに移行しました (#1)
> "フロントエンドのUser型にemailフィールドを追加して"
→ フロントエンドの型定義を更新中...
→ 関連コンポーネントも更新完了
[バックグラウンド通知] #1 テストスイート完了: 142/142 passed ✓
テスト待ちの4分間をフロントエンドの作業に活用できる。従来は待ち時間が丸ごと無駄になっていたが、Ctrl+B一発で並行作業が可能になる。
注意点:
Ctrl+Bはエージェントが実行中の時に押す必要がある(完了後では動作しない)- バックグラウンドタスクの進捗は
Ctrl+T(タスクリスト表示)または/tasksで確認可能
Esc+Esc デモ:意図と異なる実装からの復帰
シチュエーション: 「状態管理をリファクタリングして」と依頼したら、ClaudeがContext APIで実装してしまった。Zustandで実装してほしかったが、すでに4ファイルが変更済み。手動でgit stashして戻すのは面倒。
コマンド実行:
> "状態管理をリファクタリングして"
→ Context APIでの実装が完了(4ファイル変更)
(Esc → Esc)
╭──────────────────────────────────────╮
│ 巻き戻しポイント │
│ │
│ 1. [直前] Context APIリファクタリング完了 │
│ 2. [2分前] リファクタリング開始前 │
│ 3. [5分前] コンポーネント構成の議論 │
╰──────────────────────────────────────╯
> 2
✓ "リファクタリング開始前" まで巻き戻しました
復元されたファイル: 4ファイル
> "Zustandを使って状態管理をリファクタリングして"
→ 今度は意図通りの実装
git stash + git diffでの手動復旧(15分)が、Escを2回叩くだけの10秒で完了する。gitとの違いは、コードだけでなく会話の文脈も同時に戻る点である。スラッシュコマンドの/rewindと完全に同等の機能である。
Ctrl+D デモ:セッションの終了
シチュエーション: タスクが完了し、Claude Codeを終了したい。/exitと入力するのは手間。
コマンド実行:
> "テストが全パスしたことを確認しました。修正完了です。"
→ ✓ 全テストパス確認済み
(Ctrl+D)
→ Claude Codeセッションが即座に終了
→ ターミナルのプロンプトに戻る
ターミナルの標準的な終了操作(EOF送信)でClaude Codeを終了できる。bash/zshやPythonインタプリタなど、他のCLIツールと同じ感覚で操作できるため、新たに覚える必要がない。予約済みショートカットであり、リバインドは不可である。
Ctrl+W デモ:単語単位のプロンプト修正
シチュエーション: プロンプトを入力中にタイポに気づいた。Backspaceを1文字ずつ消すのは面倒。
コマンド実行:
> "src/components/Hedaer.tsx のスタイルを修正して|"
↑カーソル位置
(Ctrl+W)
> "src/components/Hedaer.tsx のスタイルを|"
→ 「修正して」が一括削除
(Ctrl+W)
> "src/components/Hedaer.tsx の|"
→ 「スタイルを」が一括削除
(Ctrl+W)
> "src/components/|"
→ 「Hedaer.tsx」が一括削除(タイポごと消える)
→ 正しく「Header.tsx」と再入力
Backspaceを10回押す代わりにCtrl+Wを1回押すだけで単語単位で削除できる。タイポの修正やプロンプトの部分的な書き直しが格段に速くなる。
Tier B:特定の場面で役立つ補助的なショートカット
使用頻度は高くないが、知っておくと特定の場面で役立つショートカット群である。
ショートカット | 概要 | ユースケース |
|---|---|---|
| 詳細出力(トランスクリプト)モードのトグル | 原因不明のエラー→ |
| タスクリスト(バックグラウンドタスク一覧)の表示/非表示トグル | 3タスク並行実行中→ |
Ctrl+O デモ:詳細出力でのデバッグ
シチュエーション: Claudeにバグ修正を依頼したが、どのツールを使ってどのファイルを読んだのか、内部の動きが見えない。意図通りのファイルを参照しているか確認したい。
コマンド実行:
(Ctrl+O)
✓ 詳細出力: ON
> "src/api/auth.tsの認証バグを修正して"
→ [Read] src/api/auth.ts (245 lines)
→ [Read] src/middleware/session.ts (89 lines)
→ [Grep] "validateToken" in src/**/*.ts (3 matches)
→ [Edit] src/api/auth.ts:42-48
→ 修正完了
(Ctrl+O)
✓ 詳細出力: OFF
→ 通常の簡潔な表示に戻る
Claudeがどのファイルを読み、どのツールを使い、どこを編集したかが全て可視化される。「なぜこのファイルを変更したのか」を追跡したい場面で有用である。
Ctrl+T デモ:バックグラウンドタスクの進捗確認
シチュエーション: テスト、lint、型チェックの3つをバックグラウンドで実行中。どれが完了したか確認したい。
コマンド実行:
[3つのタスクをCtrl+Bでバックグラウンド化済み]
(Ctrl+T)
╭──────────────────────────────────────╮
│ バックグラウンドタスク │
│ │
│ ✅ #1 lint修正 (完了 30秒前) │
│ 🔄 #2 テストスイート実行 (実行中 2:15) │
│ ✅ #3 型チェック (完了 1分前) │
╰──────────────────────────────────────╯
(Ctrl+T)
→ タスクリストを非表示にして画面を広く使う
/tasksコマンドでも同じ情報にアクセスできるが、Ctrl+Tはトグル操作で素早く表示/非表示を切り替えられる点が便利である。
keybindings.jsonによるカスタマイズ
Claude Code v2.1.18以降では、キーボードショートカットを自由にカスタマイズできる。
セットアップ:
- Claude Code内で
/keybindingsコマンドを実行 ~/.claude/keybindings.jsonがエディタで開かれる(存在しない場合は自動作成)
設定ファイルの構造:
{
"$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
}
}
]
}
予約済みショートカット(リバインド不可):
ショートカット | 理由 |
|---|---|
| ハードコードされた割り込み/キャンセル |
| ハードコードされた終了 |
全ショートカット早見表
最後に、本記事で紹介した全ショートカットの早見表を掲載する。
ショートカット | 機能 | Tier |
|---|---|---|
| パーミッション切り替え | S |
| 処理キャンセル | S |
| 外部エディタ編集 | S |
| プロンプトスタッシュ | S |
| 画像貼り付け | S |
| 画面クリア | S |
| 行末まで削除 | S |
| 行頭まで削除 | S |
| 行頭/行末移動 | S |
| マルチライン入力 | S |
| クイックコマンド | S |
| バックグラウンド移行 | A |
| 巻き戻し | A |
| 終了 | A |
| 前の単語を削除 | A |
| 詳細出力トグル | B |
| タスクリスト表示 | B |
まとめ
Claude Codeのキーボードショートカットを重要度別に3つのTierに分類し、各ショートカットの概要とユースケースを解説した。要点を振り返る。
Tier S(最優先で覚えるべきショートカット群): Shift+Tabで承認疲れを解消し、Ctrl+Cで暴走を止める。Ctrl+Vで視覚情報を直接共有、Ctrl+Sで入力中のプロンプトを一時退避、Ctrl+Gで外部エディタからプロンプトを編集。Ctrl+Lで画面をリフレッシュし、Ctrl+K/Ctrl+U/Ctrl+A/Ctrl+Eでプロンプトを素早く編集。マルチライン入力とクイックコマンド(/ ! @)も日常的に使う基本操作である。
Tier A(作業効率を一段上げる4つ): Ctrl+Bで待ち時間をゼロにし、Esc+Escで巻き戻し(/rewindでも同等)、Ctrl+Dで終了、Ctrl+Wで単語単位の削除。
Tier B(特定場面で役立つ2つ): Ctrl+Oでデバッグ時の詳細出力切り替え、Ctrl+Tでバックグラウンドタスクの進捗確認(/tasksでも同等)。
カスタマイズ: /keybindingsコマンドでkeybindings.jsonを開き、ショートカットを自由にカスタマイズできる。
まずはTier Sを指に覚えさせることから始めることを推奨する。それだけで開発体験が大きく変わるはずである。