キーボードショートカットのカスタマイズ
キーボードショートカットをカスタマイズして、Claude Code でキーバインディング設定ファイルを使用します。
Claude Code はカスタマイズ可能なキーボードショートカットをサポートしています。/keybindings を実行して、~/.claude/keybindings.json に設定ファイルを作成または開きます。
設定ファイル
キーバインディング設定ファイルは、bindings 配列を持つオブジェクトです。各ブロックはコンテキストとキーストロークからアクションへのマップを指定します。
キーバインディングファイルへの変更は自動的に検出され、Claude Code を再起動することなく適用されます。
| フィールド | 説明 |
|---|---|
$schema |
エディタのオートコンプリート用のオプション JSON スキーマ URL |
$docs |
オプションのドキュメント URL |
bindings |
コンテキスト別のバインディングブロックの配列 |
この例では、チャットコンテキストで Ctrl+E を外部エディタを開くにバインドし、Ctrl+U をアンバインドします。
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/ja/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}
コンテキスト
各バインディングブロックは、バインディングが適用されるコンテキストを指定します。
| コンテキスト | 説明 |
|---|---|
Global |
アプリ全体に適用 |
Chat |
メインチャット入力エリア |
Autocomplete |
オートコンプリートメニューが開いている |
Settings |
設定メニュー |
Confirmation |
権限と確認ダイアログ |
Tabs |
タブナビゲーションコンポーネント |
Help |
ヘルプメニューが表示されている |
Transcript |
トランスクリプトビューア |
HistorySearch |
履歴検索モード(Ctrl+R) |
Task |
バックグラウンドタスクが実行中 |
ThemePicker |
テーマピッカーダイアログ |
Attachments |
選択ダイアログ内の画像添付ファイルナビゲーション |
Footer |
フッターインジケータナビゲーション(タスク、チーム、diff、Artifacts) |
MessageSelector |
巻き戻しと要約ダイアログのメッセージ選択 |
DiffDialog |
Diff ビューアナビゲーション |
DiffPanel |
diff パネルが開いている |
ModelPicker |
モデルピッカー努力レベル |
EffortSlider |
/effort で開かれた努力スライダー |
Select |
汎用選択/リストコンポーネント |
Plugin |
プラグインダイアログ(参照、発見、管理) |
Agents |
エージェントビュー(claude agents) |
Scroll |
会話スクロールとフルスクリーンモードでのテキスト選択 |
v2.1.205 より前では、Doctor コンテキストと /doctor 診断スクリーン用の doctor:fix アクションが存在していました。
利用可能なアクション
アクションは namespace:action 形式に従います。例えば、chat:submit はメッセージを送信し、app:toggleTodos はタスクリストを表示します。各コンテキストには特定のアクションが利用可能です。
アプリアクション
Global コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
app:interrupt |
Ctrl+C | 現在の操作をキャンセル |
app:exit |
Ctrl+D | Claude Code を終了します。800ms 以内に 2 回押して確認 |
app:redraw |
(アンバインド) | ターミナルを強制的に再描画 |
app:toggleTodos |
Ctrl+T | Claude のタスクリストの表示を切り替えます。これは /tasks バックグラウンドタスクビューではありません |
app:toggleTranscript |
Ctrl+O | 詳細トランスクリプトの表示を切り替え |
履歴アクション
コマンド履歴をナビゲートするためのアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
history:search |
Ctrl+R | 履歴検索を開く |
history:previous |
Up | 前の履歴項目 |
history:next |
Down | 次の履歴項目 |
チャットアクション
Chat コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
chat:cancel |
Escape | 現在の入力をキャンセル |
chat:clearInput |
Ctrl+L | 入力と会話を保持したまま全画面再描画を強制します。フルスクリーンレンダリングでは、スクリーンもクリア |
chat:clearScreen |
Cmd+K | chat:clearInput と同じです。会話をクリアで Cmd+K が iTerm2 と Terminal.app でどのように動作するかを参照してください |
chat:killAgents |
Ctrl+X Ctrl+K | このセッション内のすべての実行中のバックグラウンドサブエージェントを停止し、このセッションの残りのアーティファクト自動返信をオフにします |
chat:cycleMode |
Shift+Tab* | 権限モードをサイクル |
chat:modelPicker |
Meta+P | モデルピッカーを開く |
chat:fastMode |
Meta+O | 高速モードを切り替え |
chat:thinkingToggle |
Meta+T | 拡張思考を切り替え |
chat:submit |
Enter | メッセージを送信 |
chat:queueSubmit |
Ctrl+X Enter | メッセージを送信し、順番を待つようにマークします:Claude が作業中の場合、Claude Code はそれをキューに入れ、ターンを中断しません。chat:submit とは異なり、オートコンプリート提案が開いている場合でもドラフトを送信します。v2.1.247 以降が必要 |
chat:newline |
Ctrl+J | 送信せずに改行を挿入 |
chat:undo |
Ctrl+_、Ctrl+Shift+- | 最後のアクションを元に戻す |
chat:externalEditor |
Ctrl+G、Ctrl+X Ctrl+E | 外部エディタで開きます。エージェントビューディスパッチ入力もこのアクションの単一キーストロークバインディングに従います |
chat:stash |
Ctrl+S | 現在のプロンプトを保存 |
chat:imagePaste |
Ctrl+V(Windows では Alt+V、WSL では両方) | クリップボードから画像を貼り付けます。WSL では、両方のショートカットがデフォルトでバインドされています |
*VT モードなし(Node <24.2.0/<22.17.0、Bun <1.2.23)の Windows では、デフォルトは Meta+M です。
オートコンプリートアクション
Autocomplete コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
autocomplete:accept |
Tab | 提案を受け入れ |
autocomplete:dismiss |
Escape | メニューを閉じる |
autocomplete:previous |
Up | 前の提案 |
autocomplete:next |
Down | 次の提案 |
確認アクション
Confirmation コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
confirm:yes |
Y、Enter | アクションを確認 |
confirm:no |
N、Escape | アクションを拒否 |
confirm:previous |
Up | 前のオプション |
confirm:next |
Down | 次のオプション |
confirm:nextField |
Tab | 次のフィールド |
confirm:previousField |
(アンバインド) | 前のフィールド |
confirm:toggle |
Space | 選択を切り替え |
confirm:cycleMode |
Shift+Tab* | 権限モードをサイクルします。ファイル権限プロンプトでは、開いているコメントフィールドを閉じます。フィールドが開いていない場合は、プロンプトがそのオプションを提供するときに、セッションの残りの期間アクションを許可するオプションを選択します |
*VT モードなし(Node <24.2.0/<22.17.0、Bun <1.2.23)の Windows では、デフォルトは Meta+M です。
v2.1.257 より前では、confirm:toggleExplanation アクション(デフォルトでは Ctrl+E にバインド)が Bash および PowerShell 権限プロンプトでモデルが生成したコマンドの説明を表示していました。
権限アクション
権限ダイアログの Confirmation コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
permission:toggleDebug |
(アンバインド) | 権限デバッグ情報を切り替えます。Ctrl+D の以前のデフォルトは v2.1.146 で削除されました。これは app:exit をシャドウしていたためです |
トランスクリプトアクション
Transcript コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
transcript:toggleShowAll |
Ctrl+E | すべてのコンテンツの表示を切り替え |
transcript:exit |
q、Ctrl+C、Escape | トランスクリプトビューを終了 |
transcript:toggleShowAll はクラシックレンダラーにのみ適用されます。フルスクリーンレンダリングでは、トランスクリプトビューアは表示切り替えオプションを提供しません。
履歴検索アクション
HistorySearch コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
historySearch:next |
Ctrl+R | 次のマッチ |
historySearch:accept |
Escape、Tab | 選択を受け入れ |
historySearch:cancel |
Ctrl+C | 検索をキャンセル |
historySearch:execute |
Enter | 選択したコマンドを実行 |
historySearch:cycleScope |
Ctrl+S | スコープをサイクル:セッション、プロジェクト、すべて |
historySearch:next、historySearch:accept、historySearch:cancel、historySearch: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 コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
theme:toggleSyntaxHighlighting |
Ctrl+T | シンタックスハイライトを切り替え |
ヘルプアクション
Help コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
help:dismiss |
Escape | ヘルプメニューを閉じる |
タブアクション
Tabs コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
tabs:next |
Tab、Right | 次のタブ |
tabs:previous |
Shift+Tab、Left | 前のタブ |
添付ファイルアクション
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 |
Backspace、Delete | 選択したアーティファクトリンクをフッターから削除します。公開されたアーティファクト自体は影響を受けません。他のフッター行では、これらのキーは効果がありません。v2.1.217 以降が必要 |
メッセージセレクタアクション
MessageSelector コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
messageSelector:up |
Up、K、Ctrl+P | リストで上に移動 |
messageSelector:down |
Down、J、Ctrl+N | リストで下に移動 |
messageSelector:top |
Ctrl+Up、Shift+Up、Meta+Up、Shift+K | 最上部にジャンプ |
messageSelector:bottom |
Ctrl+Down、Shift+Down、Meta+Down、Shift+J | 最下部にジャンプ |
messageSelector:select |
Enter | メッセージを選択 |
Diff アクション
DiffDialog コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
diff:dismiss |
Escape | Diff ビューアを閉じます。詳細ビューからは、ファイルリストに戻ります |
diff:previousSource |
Left | 前の Diff ソース |
diff:nextSource |
Right | 次の Diff ソース |
diff:previousFile |
Up、K | ファイルリストの前のファイル。詳細ビューで 1 行上にスクロール |
diff:nextFile |
Down、J | ファイルリストの次のファイル。詳細ビューで 1 行下にスクロール |
diff:viewDetails |
Enter | Diff の詳細を表示 |
diff:back |
(アンバインド) | Diff ビューアで戻ります。Escape は diff:dismiss を通じて戻るアクションを実行します。詳細ビューの Left の以前のデフォルトは v2.1.203 で削除されました |
Diff 詳細ビューは、ページャースタイルのキーを標準的なスクロールアクションにバインドします。これらのバインディングは DiffDialog コンテキストの一部であり、詳細ビューにのみ適用されます。スクロールアクションの下に記載されている Scroll コンテキストのデフォルトは変わりません。
| アクション | デフォルト | 説明 |
|---|---|---|
scroll:pageUp |
PageUp | ビューポートの半分だけ上にスクロール |
scroll:pageDown |
PageDown | ビューポートの半分だけ下にスクロール |
scroll:fullPageUp |
Shift+Space、B | ビューポート全体だけ上にスクロール |
scroll:fullPageDown |
Space | ビューポート全体だけ下にスクロール |
scroll:top |
G、Home | 最上部にジャンプ |
scroll:bottom |
Shift+G、End | 最下部にジャンプ |
Diff パネルアクション
/diff がフルスクリーンレンダリングで開くDiff パネルのアクション。app:cycleDiffBase は DiffPanel コンテキストにあり、パネルが開いている間はアクティブです。他は Global です。パネルは Claude Code v2.1.260 以降が必要です。
| アクション | デフォルト | 説明 |
|---|---|---|
app:toggleReplTab |
(アンバインド) | Diff パネルを開くか閉じます。/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 | 努力レベルを低下 |
modelPicker:increaseEffort |
Right | 努力レベルを増加 |
modelPicker:thisSessionOnly |
s | ハイライトされたモデルをこのセッションのみに適用 |
努力スライダーアクション
EffortSlider コンテキストで利用可能なアクション。引数なしで /effort を実行するときに開くスライダー。スライダーの Left、Right、Enter、Escape キーは再バインドできません。
| アクション | デフォルト | 説明 |
|---|---|---|
effortSlider:thisSessionOnly |
s | フォーカスされた努力レベルをこのセッションのみに適用します。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 | 選択をキャンセル |
Claude Code は /skills メニューで select:pageUp、select:pageDown、select:first、select:last バインディングを適用します。/model ピッカーなどほとんどの他のリストでは、Claude Code はバインディングに関係なく PageUp と PageDown でページングし、Home と End を無視します。
プラグインアクション
Plugin コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
plugin:toggle |
Space | プラグイン選択を切り替え |
plugin:install |
I | 選択したプラグインをインストール |
plugin:favorite |
F | 選択したプラグインをお気に入りにして、インストール済みタブの上部付近にソートされるようにします |
設定アクション
Settings コンテキストで利用可能なアクション。select:accept と confirm:no アクションは選択と確認コンテキストから再利用されており、設定固有の動作があります:変更は設定を変更するとすぐに各設定に適用されるため、Escape は変更を破棄するのではなく、変更を保存して閉じます。
| アクション | デフォルト | 説明 |
|---|---|---|
settings:search |
/ | 検索モードに入る |
settings:retry |
R | 使用状況データの読み込みを再試行(エラー時) |
select:accept |
Enter、Space | 選択した設定を変更するか、そのサブメニューを開く |
confirm:no |
Escape | パネルを閉じます。変更は既に保存されています |
エージェントアクション
Agents コンテキストで利用可能なアクション。claude agents で開くエージェントビューに適用されます。v2.1.257 以降が必要です。
| アクション | デフォルト | 説明 |
|---|---|---|
agents:switchView |
Ctrl+S | セッショングループ化を状態とディレクトリの間で切り替え |
agents:togglePin |
Ctrl+T | 選択したセッションをピン留めまたはピン留め解除 |
エージェントビューが開いている間、Claude Code は Agents コンテキストがキーをバインドする場合、そのキーに対して Agents バインディングを使用し、同じキーの Chat または Global バインディングを無視します。例えば、エージェントビューで Ctrl+S を押すと、デフォルトの chat:stash をトリガーするのではなく、セッショングループ化を切り替えます。
ディスパッチ入力の外部エディタショートカットは Agents アクションではありません。エージェントビューは Chat コンテキストの chat:externalEditor バインディング(デフォルトでは Ctrl+G)に従います。
エージェントビューではバインディングが単一キーストロークで発火するため、chat:externalEditor にバインドされた Ctrl+X Ctrl+E コードはエディタを開きません。
音声アクション
音声ディクテーションが有効な場合、Chat コンテキストで利用可能なアクション:
| アクション | デフォルト | 説明 |
|---|---|---|
voice:pushToTalk |
Space | プロンプトをディクテートします。/voice モードに応じて押し続けるか、タップします |
スクロールアクション
フルスクリーンレンダリングが有効な場合、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 |
(アンバインド) | ビューポート高さ全体だけ上にスクロール |
scroll:fullPageDown |
(アンバインド) | ビューポート高さ全体だけ下にスクロール |
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 複数のモディファイア
大文字
Claude Code はキー名を大文字と小文字を区別せずに解析するため、K は k と同じバインディングであり、ctrl+K は ctrl+k と同じです。Shift とレターをバインドするには、shift+k と記述します。
非 US キーボードレイアウト
Ctrl ショートカットのキー名は、アクティブなキーボードレイアウトが他の文字を入力する場合でも、ラテン文字として記述してください。
Claude Code がキーボードで押したキーをバインディングにマッチさせる方法は、レイアウトの種類によって異なります。
- キリル文字などの非ラテンレイアウトの場合、Claude Code はターミナルが Kitty キーボードプロトコルを使用し、その位置を報告する場合、キーの US レイアウト位置で Ctrl ショートカットをマッチさせます。そのようなターミナルでロシア語レイアウトがアクティブな場合、Ctrl キーと物理的な W キーを押すと
ctrl+wがトリガーされます。位置を報告しないターミナルでは、Claude Code はターミナルがキープレスに対して送信するものをマッチさせます。ASCII 制御コードは Latin ショートカットをトリガーし、キリル文字として到着するキープレスはバインディングにマッチしません。 - AZERTY などのラテン文字を並べ替えるレイアウトの場合、Claude Code はキーが入力する文字をマッチさせるため、Ctrl キーと A というラベルのキーを押すと
ctrl+aがトリガーされます。
v2.1.247 より前では、Ghostty、Kitty、WezTerm、iTerm2 などの Kitty キーボードプロトコルを使用するターミナルで、非ラテンレイアウトの下で Ctrl ショートカットを押してもそのバインディングはトリガーされませんでした。
コード
コードはスペースで区切られたキーストロークのシーケンスです。
ctrl+k ctrl+s Ctrl+K を押して、リリースしてから Ctrl+S
特殊キー
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- Delete キーwheelup、wheeldown- マウスホイールスクロールイベント
デフォルトショートカットをアンバインド
アクションを null に設定して、デフォルトショートカットをアンバインドします。
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
これはコード バインディングでも機能します。プレフィックスを共有するすべてのコードをアンバインドすると、そのプレフィックスを単一キー バインディングとして使用できるようになります。コード バインディングは任意のアクティブなコンテキストに存在し、そのプレフィックスを予約したままにするため、それを定義するコンテキストで各コードをアンバインドする必要があります。
Claude Code は ctrl+x プレフィックスに以下のデフォルトコードをバインドします。Chat では ctrl+x ctrl+k、ctrl+x ctrl+e、ctrl+x enter、Task では ctrl+x ctrl+b、DiffPanel では ctrl+x b です。ctrl+x enter コードは v2.1.247 以降が必要で、ctrl+x b は v2.1.260 以降が必要です。ctrl+x 自体を単一キー バインディングとして再利用するには、すべてをアンバインドします。
{
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+x ctrl+b": null
}
},
{
"context": "DiffPanel",
"bindings": {
"ctrl+x b": null
}
},
{
"context": "Chat",
"bindings": {
"ctrl+x ctrl+k": null,
"ctrl+x ctrl+e": null,
"ctrl+x enter": null,
"ctrl+x": "chat:newline"
}
}
]
}
プレフィックス上の一部のコードをアンバインドしても、すべてをアンバインドしない場合、プレフィックスを押すと残りのバインディングのコード待機モードに入ります。
予約済みショートカット
これらのショートカットは再バインドできません。
| ショートカット | 理由 |
|---|---|
| Ctrl+C | ハードコードされた割り込み/キャンセル |
| Ctrl+D | ハードコードされた終了 |
| Ctrl+M | Claude Code は常に Enter として受け取ります |
| Ctrl+[ | Claude Code は常に Escape として受け取ります。Kitty キーボードプロトコルを使用するターミナルでは、v2.1.242 以降が必要です |
| Ctrl+I | Claude Code は常に Tab として受け取ります |
| Ctrl+H | ASCII バックスペースバイトを送信します。Claude Code が Windows で読み込む方法は、ターミナルと CLAUDE_CODE_BS_AS_CTRL_BACKSPACE 環境変数によって異なります |
| Caps Lock | ターミナルアプリケーションに配信されない |
ターミナルの競合
一部のショートカットはターミナルマルチプレクサと競合する可能性があります。
| ショートカット | 競合 |
|---|---|
| Ctrl+B | tmux プレフィックス(2 回押して送信) |
| Ctrl+A | GNU screen プレフィックス |
| Ctrl+Z | Unix プロセス一時停止(SIGTSTP) |
Vim モードの相互作用
Vim モードが /config → エディタモードで有効な場合、キーバインディングと Vim モードは独立して動作します。
- Vim モード はテキスト入力レベルで入力を処理します(カーソル移動、モード、モーション)
- キーバインディング はコンポーネントレベルでアクションを処理します(todos を切り替え、送信など)
- Vim モードの Escape キーは INSERT から NORMAL モードに切り替わります。
chat:cancelをトリガーしません - ほとんどの Ctrl+key ショートカットは Vim モードを通過してキーバインディングシステムに渡されます
- Vim キーはキーバインディングファイルを通じて再マップできません。
jjを Escape にマップするような 2 キーの INSERT モードシーケンスをマップするには、vimInsertModeRemaps設定を使用してください - Vim NORMAL モードでは、
?はヘルプメニューを表示します(Vim の動作) - Vim NORMAL モードでは、
/は履歴検索を開きます。標準モードの Ctrl+R と同じです
検証
Claude Code はキーバインディングを検証し、以下の警告を表示します。
- 解析エラー(無効な JSON または構造)
- 無効なコンテキスト名
- 無効なアクション値(アクションが文字列または
nullではない場合など) - 不明なアクション名(登録されたアクションのタイプミスなど)。Claude Code はバインディングをスキップし、そのキーのデフォルトバインディングを有効に保ちます。v2.1.246 より前では、不明なアクション名を持つバインディングはそのキーを静かに無効化していました
- 予約済みショートカットの競合
- 同じコンテキスト内の重複バインディング
Claude Code はファイルが読み込まれるときに警告を報告し、各警告をデバッグログに書き込みます。Claude Code を --debug で起動して、詳細を確認してください。