> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 自訂鍵盤快捷鍵

> 使用快捷鍵配置檔案在 Claude Code 中自訂鍵盤快捷鍵。

Claude Code 支援可自訂的鍵盤快捷鍵。執行 `/keybindings` 以在 `~/.claude/keybindings.json` 建立或開啟您的配置檔案。

<h2 id="configuration-file">
  配置檔案
</h2>

快捷鍵配置檔案是一個包含 `bindings` 陣列的物件。每個區塊指定一個上下文和一個按鍵組合到動作的對應。

<Note>快捷鍵檔案的變更會自動偵測並套用，無需重新啟動 Claude Code。</Note>

| 欄位 | 說明 |
| :- | :- |
| `$schema` | 選用的 JSON Schema URL，用於編輯器自動完成 |
| `$docs` | 選用的文件 URL |
| `bindings` | 按上下文分組的繫結區塊陣列 |

此範例在聊天上下文中將 `Ctrl+E` 繫結到開啟外部編輯器，並取消繫結 `Ctrl+S`：

```json theme={null}
{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "$docs": "https://code.claude.com/docs/zh-TW/keybindings",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor",
        "ctrl+s": null
      }
    }
  ]
}
```

<h2 id="contexts">
  上下文
</h2>

每個繫結區塊都指定一個**上下文**，其中繫結適用：

| 上下文 | 描述 |
| :- | :- |
| `Global` | 在應用程式的任何地方適用 |
| `Chat` | 主聊天輸入區域 |
| `Autocomplete` | 自動完成選單已開啟 |
| `Settings` | 設定選單 |
| `Confirmation` | 權限和確認對話框 |
| `Tabs` | 標籤導覽元件 |
| `Help` | 說明選單可見 |
| `Transcript` | 文字記錄檢視器 |
| `HistorySearch` | 歷史記錄搜尋模式 (Ctrl+R) |
| `Task` | 工作在前景執行中 |
| `ThemePicker` | 佈景主題選擇器對話框 |
| `Attachments` | 選取對話框中的影像附件導覽 |
| `Footer` | 頁尾指示器導覽 (工作、團隊、差異、成品) |
| `MessageSelector` | 倒帶和摘要對話框訊息選取 |
| `DiffDialog` | [差異檢視器](#diff-actions)導覽 |
| `DiffPanel` | [差異面板](/docs/zh-TW/interactive-mode#diff-panel)已開啟 |
| `ModelPicker` | 模型選擇器努力程度 |
| `EffortSlider` | 由 `/effort` 開啟的努力滑桿 |
| `Select` | 通用選取/清單元件 |
| `Plugin` | Plugin 對話框 (瀏覽、探索、管理) |
| `AbovePrompt` | [提示詞上方的區域](#above-prompt-actions)或其中的按鈕擁有鍵盤焦點 |
| `AbovePromptInput` | 提示詞上方區域或 mod 窗格中的輸入欄位擁有鍵盤焦點 |
| `AbovePromptSelect` | 提示詞上方區域或 mod 窗格中的選取元件擁有鍵盤焦點 |
| `Pane` | 由 [mod](/docs/zh-TW/plugins/mods/interface#know-which-keys-your-mod-can-receive) 繪製的窗格擁有鍵盤焦點 |
| `PaneField` | mod 窗格中的輸入欄位或選取元件擁有鍵盤焦點 |
| `Agents` | [Agent 檢視](/docs/zh-TW/agent-view) (`claude agents`) |
| `Scroll` | 對話捲動和全螢幕模式中的文字選取 |

在 v2.1.205 之前，`/doctor` 診斷畫面存在 `Doctor` 上下文和 `doctor:fix` 動作。

<h2 id="available-actions">
  可用的動作
</h2>

動作遵循 `namespace:action` 格式，例如 `chat:submit` 用於傳送訊息，或 `app:toggleTodos` 用於顯示工作清單。每個上下文都有特定的可用動作。

<h3 id="app-actions">
  應用程式動作
</h3>

在 `Global` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `app:interrupt` | Ctrl+C | 取消目前的操作 |
| `app:exit` | Ctrl+D | 結束 Claude Code。在 800ms 內按兩次以確認 |
| `app:redraw` | (未綁定) | 強制終端機重繪 |
| `app:toggleTodos` | Ctrl+T | 切換 Claude 待辦事項清單的可見性。這不是 [`/tasks`](/docs/zh-TW/commands) 背景工作檢視 |
| `app:toggleTranscript` | Ctrl+O | 切換詳細文字記錄 |

<h3 id="history-actions">
  歷史記錄動作
</h3>

用於導覽命令歷史記錄的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `history:search` | Ctrl+R | 開啟歷史記錄搜尋 |
| `history:previous` | Up | 上一個歷史記錄項目 |
| `history:next` | Down | 下一個歷史記錄項目 |

<h3 id="chat-actions">
  聊天動作
</h3>

在 `Chat` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `chat:cancel` | Escape | 取消目前的輸入 |
| `chat:clearInput` | Ctrl+L | 強制進行完整螢幕重繪，保留輸入和對話 |
| `chat:clearScreen` | Cmd+K | 與 `chat:clearInput` 相同。請參閱 [清除對話](/docs/zh-TW/fullscreen#clear-the-conversation) 以了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行為 |
| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此工作階段中所有執行中的 [背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)，並在此工作階段的剩餘期間關閉 [artifact 自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own)。在 3 秒內按兩次快捷鍵以確認。即使背景 subagent 的權限提示正在開啟，您也可以按下此快捷鍵 |
| `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 [將其排隊](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works)，永遠不會中斷輪次。與 `chat:submit` 不同，即使自動完成建議被突出顯示，它也會提交草稿。需要 v2.1.247 或更新版本 |
| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | 立即傳送您的 [排隊訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works) 和您的草稿。[Claude Code 傳送您排隊的內容時](/docs/zh-TW/interactive-mode#when-claude-code-sends-what-you-queued) 涵蓋 Claude 正在處理的輪次會發生什麼。當沒有任何內容執行時，該按鍵會提交草稿，在 [shell 模式](/docs/zh-TW/interactive-mode#shell-mode-with-prefix) 中，它只會排隊命令。不報告延伸按鍵的終端機會將 `Ctrl+Enter` 傳遞為純 `Enter`，因此 `Ctrl+X Ctrl+S` 是在任何終端機中都能運作的綁定。需要 v2.1.275 或更新版本 |
| `chat:newline` | Ctrl+J | 插入新行而不提交 |
| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 復原上一個動作 |
| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 在外部編輯器中開啟。[代理檢視分派輸入](/docs/zh-TW/agent-view#keyboard-shortcuts) 也遵循此動作的單按鍵綁定 |
| `chat:stash` | Ctrl+S | 暫存目前的提示 |
| `chat:imagePaste` | Ctrl+V (Windows 和 WSL 上為 Alt+V) | 從剪貼簿貼上圖片。在 WSL 上，預設會綁定兩個快捷鍵 |

\*在沒有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23)，預設為 Meta+M。

<h3 id="autocomplete-actions">
  自動完成動作
</h3>

在 `Autocomplete` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `autocomplete:accept` | Tab | 接受建議 |
| `autocomplete:dismiss` | Escape | 關閉功能表 |
| `autocomplete:previous` | Up | 上一個建議 |
| `autocomplete:next` | Down | 下一個建議 |

<h3 id="confirmation-actions">
  確認動作
</h3>

在 `Confirmation` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `confirm:yes` | Enter | 確認動作 |
| `confirm:no` | Escape | 拒絕動作 |
| `confirm:previous` | Up | 上一個選項 |
| `confirm:next` | Down | 下一個選項 |
| `confirm:nextField` | Tab | 在 `/fast` 對話框中，開啟或關閉快速模式 |
| `confirm:previousField` | (未綁定) | Claude Code 不會回應此動作，且命名它的 `keybindings.json` 仍然有效 |
| `confirm:toggle` | Space | 切換選擇 |
| `confirm:cycleMode` | Shift+Tab\* | 在檔案權限提示上，關閉開啟的 [評論欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)；沒有開啟的欄位時，選擇允許該動作用於工作階段其餘部分的選項，當提示提供該選項時 |

\*在沒有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23)，預設為 Meta+M。

在 v2.1.257 之前，`confirm:toggleExplanation` 動作綁定到 `Ctrl+E`，預設情況下在 Bash 和 PowerShell 權限提示上顯示模型生成的命令說明。

對話框使用 `confirm:yes` 和 `confirm:no` 來接受和取消，即使它們不提出是或否的問題。如果您在此上下文中綁定裸字母（例如 `y` 或 `n`），該字母也會作用於從不將其顯示為按鍵的對話框。顯示 `y` 和 `n` 作為其按鍵的對話框會自行讀取這些字母，不需要綁定。

在大多數對話框中，按 `Ctrl+C` 或 `Ctrl+D` 兩次會關閉對話框，而不是結束 Claude Code。第一次按下後的提示會說明第二次按下是關閉對話框還是結束。兩個按鍵都是 [保留的](#reserved-shortcuts)，無法重新綁定。

此範例將 `y` 綁定到 `confirm:yes`，將 `n` 綁定到 `confirm:no`：

```json theme={null}
{
  "bindings": [
    {
      "context": "Confirmation",
      "bindings": {
        "y": "confirm:yes",
        "n": "confirm:no"
      }
    }
  ]
}
```

使用這些綁定，當 [文字欄位](#text-fields) 有焦點時，`y` 和 `n` 仍然會輸入為字母。

在 v2.1.280 之前，`y` 也預設綁定到 `confirm:yes`，`n` 綁定到 `confirm:no`。如果您在 v2.1.280 之前使用 `/keybindings` 建立了 `keybindings.json`，該檔案會列出兩個綁定，它們會保持有效，直到您刪除這兩行。

<h3 id="permission-actions">
  權限動作
</h3>

在 `Confirmation` 上下文中可用的動作，用於權限對話框：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `permission:toggleDebug` | (未綁定) | Claude Code 不會回應此動作，且命名它的 `keybindings.json` 仍然有效 |

<h3 id="transcript-actions">
  文字記錄動作
</h3>

在 `Transcript` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `transcript:toggleShowAll` | Ctrl+E | 切換顯示所有內容 |
| `transcript:exit` | q, Ctrl+C, Escape | 結束文字記錄檢視 |

`transcript:toggleShowAll` 僅在經典轉譯器中適用；在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 中，文字記錄檢視器不提供顯示全部切換。

<h3 id="history-search-actions">
  歷史記錄搜尋動作
</h3>

在 `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` 僅在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 中生效，其中 `Ctrl+R` 開啟搜尋對話框，`Ctrl+S` 循環其範圍。對話框的其他按鍵是固定的，無法重新綁定：`Enter` 或 `Tab` 將突出顯示的符合項放在提示輸入中，`Esc` 取消。

<h3 id="task-actions">
  工作動作
</h3>

在 `Task` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 將目前的任務移至背景 |

<h3 id="theme-actions">
  主題動作
</h3>

在 `ThemePicker` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切換語法突出顯示 |

<h3 id="help-actions">
  說明動作
</h3>

在 `Help` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `help:dismiss` | Escape | 關閉說明功能表 |

<h3 id="tabs-actions">
  標籤動作
</h3>

在 `Tabs` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `tabs:next` | Tab, Right | 下一個標籤 |
| `tabs:previous` | Shift+Tab, Left | 上一個標籤 |

在標籤式對話框中，當標籤列有焦點時，`tabs:next` 和 `tabs:previous` 會切換標籤。在某些對話框中，例如 `/help` 和 `/sandbox`，標籤切換按鍵也可以從標籤的內容內部運作。

`Up` 和 `Down` 在標籤列和標籤的內容之間移動焦點，內容中的清單僅在有焦點時才會回應按鍵。

<h3 id="attachments-actions">
  附件動作
</h3>

在 `Attachments` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `attachments:next` | Right | 下一個附件 |
| `attachments:previous` | Left | 上一個附件 |
| `attachments:remove` | Backspace, Delete | 移除選定的附件 |
| `attachments:exit` | Down, Escape | 結束附件導覽 |

<h3 id="footer-actions">
  頁尾動作
</h3>

在 `Footer` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `footer:next` | Right | 下一個頁尾項目 |
| `footer:previous` | Left | 上一個頁尾項目 |
| `footer:up` | Up, Ctrl+P | 在頁尾中向上導覽 (在頂部取消選擇) |
| `footer:down` | Down, Ctrl+N | 在頁尾中向下導覽 |
| `footer:openSelected` | Enter | 開啟選定的頁尾項目 |
| `footer:clearSelection` | Escape | 清除頁尾選擇 |
| `footer:close` | x | 停止選定的 [agent](/docs/zh-TW/sub-agents#observe-and-steer-running-forks) 或 [工作流程](/docs/zh-TW/workflows#manage-runs)，若其已不再執行，則關閉其列 |
| `footer:dismiss` | (未綁定) | 將按鍵綁定到此動作沒有效果，命名它的 `keybindings.json` 保持有效。在 v2.1.281 之前，Backspace 和 Delete 被綁定到它，並從頁尾中關閉選定的成品連結。 |

當選定頁尾項目時，例如提示下方代理面板中的列，即使您在 `Chat` 上下文中將 `Enter` 重新綁定到 `chat:queueSubmit` 或 `chat:newline`，按 `Enter` 也會開啟它。

`Chat` 在 `Footer` 上下文未綁定的按鍵上的綁定，例如 `Shift+Tab` 用於 `chat:cycleMode`，在選定項目時保持運作。

<h3 id="message-selector-actions">
  訊息選擇器動作
</h3>

在 [倒帶功能表](/docs/zh-TW/checkpointing) 的訊息清單中，您可以使用 [選擇動作](#select-actions) 及其預設按鍵在訊息中移動並選擇一個。您對這些動作的 `Select` 綁定也適用於此處。`MessageSelector` 上下文沒有自己的動作或預設綁定。使用它來僅為此清單變更按鍵，方法是在 `MessageSelector` 區塊中綁定選擇動作，例如 `select:accept`。

此範例將 `o` 綁定到在倒帶功能表中選擇突出顯示的訊息，而不變更任何其他清單：

```json theme={null}
{
  "bindings": [
    {
      "context": "MessageSelector",
      "bindings": {
        "o": "select:accept"
      }
    }
  ]
}
```

在 v2.1.283 之前，此清單忽略了 `Select` 綁定，並有自己的動作：`messageSelector:up`、`messageSelector:down`、`messageSelector:top`、`messageSelector:bottom` 和 `messageSelector:select`。如果您的 `keybindings.json` 綁定了其中一個名稱，綁定會在此清單中保持運作，作為執行相同操作的選擇動作。`Home` 和 `End` 跳轉到清單的任一端；在 v2.1.283 之前，`Shift+K` 和 `Shift+J` 等按鍵預設會執行此操作。

<h3 id="diff-actions">
  差異動作
</h3>

這些動作僅適用於 Claude Code 較早的差異檢視器；在您於 `/plugin` 中停用 [`cc-plugin-diff` mod](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code) 後，`/diff` 會在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 之外開啟該檢視器。啟用該 mod 時，`/diff` 會改為開啟 [差異對話框](/docs/zh-TW/interactive-mode#diff-dialog)。無論哪種情況，命名這些動作的 `keybindings.json` 都會正常載入，不會出現錯誤。

在 `DiffDialog` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `diff:dismiss` | Escape | 關閉差異檢視器；從詳細檢視返回到檔案清單 |
| `diff:previousSource` | Left | 上一個差異來源 |
| `diff:nextSource` | Right | 下一個差異來源 |
| `diff:previousFile` | Up, K | 檔案清單中的上一個檔案；在詳細檢視中向上捲動一行 |
| `diff:nextFile` | Down, J | 檔案清單中的下一個檔案；在詳細檢視中向下捲動一行 |
| `diff:back` | (未綁定) | 在差異檢視器中返回。Escape 透過 `diff:dismiss` 執行返回動作。詳細檢視中 Left 的先前預設值在 v2.1.203 中被移除 |

檔案清單也透過 [選擇動作](#select-actions) 回應，透過其預設按鍵和您的 `Select` 綁定。`select:previous` 和 `select:next` 移動到上一個和下一個檔案，`Enter` 透過 `select:accept` 開啟選定檔案的差異。若要僅為檔案清單變更其中一個按鍵，請在 `DiffDialog` 區塊中綁定選擇動作。

在 v2.1.283 之前，檔案清單忽略了 `Select` 綁定，`Enter` 透過單獨的 `diff:viewDetails` 動作開啟選定檔案的差異。如果您的 `keybindings.json` 綁定了 `diff:viewDetails`，綁定會在檔案清單中保持運作，作為 `select:accept`。

差異詳細檢視也將尋呼機樣式按鍵綁定到標準 [捲動動作](#scroll-actions)。這些綁定是 `DiffDialog` 上下文的一部分，僅在詳細檢視中適用；[捲動動作](#scroll-actions) 下列出的 `Scroll` 上下文預設值保持不變。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `scroll:pageUp` | PageUp | 向上捲動半個檢視區 |
| `scroll:pageDown` | PageDown | 向下捲動半個檢視區 |
| `scroll:fullPageUp` | Shift+Space, B | 向上捲動完整檢視區 |
| `scroll:fullPageDown` | Space | 向下捲動完整檢視區 |
| `scroll:top` | G, Home | 跳到頂部 |
| `scroll:bottom` | Shift+G, End | 跳到底部 |

<h3 id="diff-panel-actions">
  差異面板動作
</h3>

用於 `/diff` 在全螢幕轉譯中開啟的 [差異面板](/docs/zh-TW/interactive-mode#diff-panel) 的動作。`app:cycleDiffBase` 在 `DiffPanel` 上下文中，在面板開啟時有效；其他的在 `Global` 中。

內建的 [`cc-plugin-diff` mod](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code) 會繪製此面板，並處理 `app:cycleDiffBase`、`app:diffFileListUp` 和 `app:diffFileListDown`。`app:toggleReplTab`、`app:toggleDiffNoiseFilter` 和 `app:toggleDiffPreSession` 僅適用於 Claude Code 較早的面板；在您於 `/plugin` 中停用 `cc-plugin-diff` 後，`/diff` 會開啟該面板。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `app:toggleReplTab` | (未綁定) | 開啟或關閉差異面板 |
| `app:cycleDiffBase` | Ctrl+X B | 循環面板的比較基礎：此工作階段、未提交、然後分支 |
| `app:diffFileListUp` | Ctrl+Up, Meta+Up | 當面板的檔案清單溢出時向上捲動 |
| `app:diffFileListDown` | Ctrl+Down, Meta+Down | 當面板的檔案清單溢出時向下捲動 |
| `app:toggleDiffNoiseFilter` | (未綁定) | 在面板中顯示或隱藏測試和生成的檔案 |
| `app:toggleDiffPreSession` | (未綁定) | 展開或摺疊此工作階段之前的變更 |

<h3 id="model-picker-actions">
  模型選擇器動作
</h3>

在 `ModelPicker` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `modelPicker:decreaseEffort` | Left | 降低努力等級 |
| `modelPicker:increaseEffort` | Right | 提高努力等級 |
| `modelPicker:thisSessionOnly` | s | 將突出顯示的模型套用到此工作階段 |

<h3 id="effort-slider-actions">
  努力滑塊動作
</h3>

在 `EffortSlider` 上下文中可用的動作，當您執行不帶引數的 `/effort` 時開啟的滑塊。滑塊的 Enter 和 Escape 按鍵無法重新綁定。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `effortSlider:decreaseEffort` | Left | 將滑塊移動到下一個較低的努力等級。需要 v2.1.284 或更新版本 |
| `effortSlider:increaseEffort` | Right | 將滑塊移動到下一個較高的努力等級。需要 v2.1.284 或更新版本 |
| `effortSlider:toggleUltracode` | Tab | 為此工作階段開啟或關閉 [ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode)，當滑塊 [提供它](/docs/zh-TW/model-config#when-ultracode-is-available) 時。需要 v2.1.284 或更新版本 |
| `effortSlider:thisSessionOnly` | s | 將焦點 [努力等級](/docs/zh-TW/model-config#adjust-effort-level) 套用到此工作階段。需要 v2.1.257 或更新版本 |

<h3 id="select-actions">
  選擇動作
</h3>

在 `Select` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `select:next` | Down, J, Ctrl+N | 下一個選項 |
| `select:previous` | Up, K, Ctrl+P | 上一個選項 |
| `select:pageUp` | PageUp | 向上移動一頁選項 |
| `select:pageDown` | PageDown | 向下移動一頁選項 |
| `select:first` | Home | 第一個選項 |
| `select:last` | End | 最後一個選項 |
| `select:accept` | Enter | 接受選擇 |
| `select:cancel` | Escape | 取消選擇 |

在清單面板中，例如 `/skills`、`/mcp` 和 `/tasks`，Claude Code 會套用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 綁定。在大多數其他清單中，例如 `/model` 選擇器，您的 `select:first` 和 `select:last` 綁定會套用。PageUp 和 PageDown 會在這些清單中分頁選項，無論您的綁定如何。

在 v2.1.280 之前，這些其他清單忽略了 Home、End 和您的 `select:first` 和 `select:last` 綁定。

在 v2.1.283 之前，`/mcp` 工具清單使用固定的 PageUp 和 PageDown 按鍵進行分頁，無論您的綁定如何。

<h3 id="plugin-actions">
  外掛程式動作
</h3>

在 `Plugin` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `plugin:toggle` | Space | 切換外掛程式選擇 |
| `plugin:install` | I | 安裝選定的外掛程式 |
| `plugin:favorite` | F | 將選定的外掛程式設為最愛，使其在已安裝標籤附近排序 |

<h3 id="above-prompt-actions">
  提示詞上方動作
</h3>

用於提示詞上方區帶的動作，這是 [mod](/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) 繪製按鈕、輸入欄位和選單的共用區域。`abovePrompt:toggle` 和 `abovePrompt:focus` 適用於 `Chat` 上下文。其他動作適用於區帶或窗格中具有鍵盤焦點之元素的 [上下文](#contexts)。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `abovePrompt:toggle` | Ctrl+X Ctrl+A | 將區帶摺疊為單列提示，或再次展開 |
| `abovePrompt:focus` | Ctrl+X Tab | 將鍵盤焦點移入區帶，然後移至每個開啟的 [窗格](#pane-actions)，並從最後一個窗格返回提示詞 |
| `abovePrompt:next` | Tab | 聚焦下一個控制項 |
| `abovePrompt:previous` | Shift+Tab | 聚焦上一個控制項 |
| `abovePrompt:press` | Enter | 按下聚焦的按鈕、提交聚焦的輸入欄位，或在選單中選擇突出顯示的選項 |
| `abovePrompt:leave` | Escape | 將鍵盤焦點返回提示詞 |
| `abovePrompt:highlightNext` | Down | 在聚焦的選單中突出顯示下一個選項 |
| `abovePrompt:highlightPrevious` | Up | 在聚焦的選單中突出顯示上一個選項 |

有兩個上下文預設會將更多按鍵綁定到這些動作：

* **`AbovePrompt`**：Right 和 Left 也會執行 `abovePrompt:next` 和 `abovePrompt:previous`，Space 也會執行 `abovePrompt:press`
* **`AbovePromptInput`**：Down 和 Up 也會執行 `abovePrompt:next` 和 `abovePrompt:previous`

`AbovePrompt` 上下文也將 Up、Down、PageUp、PageDown、Home 和 End 綁定到 [窗格捲動動作](#pane-actions) `pane:scrollUp` 至 `pane:bottom`，因此若要為區帶變更其中一個按鍵，請在 `AbovePrompt` 區塊中綁定該捲動動作。

<h3 id="pane-actions">
  窗格動作
</h3>

用於由 [mod](/docs/zh-TW/plugins/mods/interface#know-which-keys-your-mod-can-receive) 繪製之窗格的動作。捲動、調整大小和關閉動作適用於 `Pane` [上下文](#contexts)。`pane:close` 也適用於 `PaneField` 上下文，因此在窗格的某個欄位有焦點時也能運作。當開啟多個窗格時，`pane:next` 和 `pane:previous` 適用於 `Global` 上下文。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `pane:scrollUp` | Up | 當窗格的列數超過可顯示範圍時向上捲動窗格 |
| `pane:scrollDown` | Down | 當窗格的列數超過可顯示範圍時向下捲動窗格 |
| `pane:pageUp` | PageUp | 將窗格向上捲動一頁 |
| `pane:pageDown` | PageDown | 將窗格向下捲動一頁 |
| `pane:top` | Home | 跳到窗格頂部 |
| `pane:bottom` | End | 跳到窗格底部 |
| `pane:grow` | Ctrl+X Left, Ctrl+X Up | 給予窗格更多空間：位於逐字稿旁時增加寬度，位於提示詞上方時增加高度 |
| `pane:shrink` | Ctrl+X Right, Ctrl+X Down | 給予窗格較少空間：位於逐字稿旁時減少寬度，位於提示詞上方時減少高度 |
| `pane:close` | Ctrl+X X | 關閉窗格 |
| `pane:next` | (未綁定) | 顯示下一個開啟的窗格 |
| `pane:previous` | (未綁定) | 顯示上一個開啟的窗格 |

`Pane` 上下文也將 Tab、Shift+Tab、Enter 和 Escape 綁定到與區帶相同的 [提示詞上方動作](#above-prompt-actions)，而窗格的輸入欄位和選單使用 `AbovePromptInput` 和 `AbovePromptSelect` 上下文。[鍵盤焦點與快速鍵](/docs/zh-TW/plugins/mods/interface#know-which-keys-your-mod-can-receive) 列出了每個按鍵在窗格中的作用。

<h3 id="settings-actions">
  設定動作
</h3>

在 `Settings` 上下文中可用的動作。`select:accept` 和 `confirm:no` 動作會從 [選擇](#select-actions) 和 [確認](#confirmation-actions) 上下文重複使用，具有設定特定的行為：變更會在您變更時立即套用到每個設定，因此 Escape 會關閉面板並保存您的變更，而不是拒絕。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `settings:search` | / | 進入搜尋模式 |
| `settings:retry` | R | 在錯誤時重試載入使用量資料 |
| `select:accept` | Enter, Space | 變更選定的設定或開啟其子功能表 |
| `confirm:no` | Escape | 關閉面板。變更已保存 |

<h3 id="agents-actions">
  代理動作
</h3>

在 `Agents` 上下文中可用的動作，適用於 [代理檢視](/docs/zh-TW/agent-view)，使用 `claude agents` 開啟。需要 v2.1.257 或更新版本。

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `agents:switchView` | Ctrl+S | 在 [工作階段分組](/docs/zh-TW/agent-view#organize-the-list) 之間切換狀態和目錄 |
| `agents:togglePin` | Ctrl+T | [釘選或取消釘選](/docs/zh-TW/agent-view#organize-the-list) 選定的工作階段 |
| `agents:find` | Ctrl+F | 使用 [`n:` 篩選器](/docs/zh-TW/agent-view#filter-sessions) 依名稱尋找工作階段。需要 v2.1.288 或更新版本 |
| `agents:rename` | Ctrl+R | [重新命名](/docs/zh-TW/agent-view#organize-the-list) 選定的工作階段。需要 v2.1.288 或更新版本 |
| `agents:previousGroup` | Ctrl+Up, Meta+Up | 跳到上一個 [群組標題](/docs/zh-TW/agent-view#organize-the-list)。需要 v2.1.288 或更新版本 |
| `agents:nextGroup` | Ctrl+Down, Meta+Down | 跳到下一個群組標題。需要 v2.1.288 或更新版本 |

當代理檢視開啟時，Claude Code 會對 `Agents` 上下文綁定的任何按鍵使用 `Agents` 綁定，並忽略同一按鍵上的 `Chat` 或 `Global` 綁定。例如，在代理檢視中按 Ctrl+S 會切換工作階段分組，而不是觸發預設的 `chat:stash`。

分派輸入的外部編輯器快捷鍵不是 `Agents` 動作。代理檢視遵循 `Chat` 上下文的 `chat:externalEditor` 綁定，預設為 Ctrl+G。

綁定在代理檢視中的單個按鍵上觸發，因此綁定到 `chat:externalEditor` 的 Ctrl+X Ctrl+E 組合不會在那裡開啟編輯器。

<h3 id="voice-actions">
  語音動作
</h3>

當 [語音聽寫](/docs/zh-TW/voice-dictation) 啟用時，在 `Chat` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `voice:pushToTalk` | Space | 聽寫提示。根據 `/voice` 模式按住或點擊 |

<h3 id="scroll-actions">
  捲動動作
</h3>

當 [全螢幕轉譯](/docs/zh-TW/fullscreen) 啟用時，在 `Scroll` 上下文中可用的動作：

| 動作 | 預設 | 說明 |
| :- | :- | :- |
| `scroll:lineUp` | `wheelup` | 向上捲動一行。滑鼠滾輪捲動會觸發此動作 |
| `scroll:lineDown` | `wheeldown` | 向下捲動一行。滑鼠滾輪捲動會觸發此動作 |
| `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 | 將有效選擇向左延伸一欄 |
| `selection:extendRight` | Shift+Right | 將有效選擇向右延伸一欄 |
| `selection:extendUp` | Shift+Up | 將有效選擇向上延伸一列。當選擇到達頂部邊緣時捲動檢視區 |
| `selection:extendDown` | Shift+Down | 將有效選擇向下延伸一列。當選擇到達底部邊緣時捲動檢視區 |
| `selection:extendLineStart` | Shift+Home | 將有效選擇延伸到行的開始 |
| `selection:extendLineEnd` | Shift+End | 將有效選擇延伸到行的結尾 |

<h2 id="keystroke-syntax">
  按鍵組合語法
</h2>

<h3 id="modifiers">
  修飾鍵
</h3>

使用 `+` 分隔符搭配修飾鍵：

* `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`。

例如：

```text theme={null}
ctrl+k          Ctrl + K
shift+tab       Shift + Tab
meta+p          macOS 上的 Option + P，其他地方為 Alt + P
ctrl+shift+c    多個修飾鍵
```

<h3 id="uppercase-letters">
  大寫字母
</h3>

Claude Code 不區分大小寫地解析按鍵名稱，因此 `K` 與 `k` 的繫結相同，`ctrl+K` 與 `ctrl+k` 相同。若要繫結 Shift 和一個字母，請寫 `shift+k`。

<h3 id="non-us-keyboard-layouts">
  非美式鍵盤配置
</h3>

即使您的作用中鍵盤配置輸入其他字元，也請將 Ctrl 快捷鍵的按鍵名稱寫成拉丁字元。

Claude Code 如何將您按下的按鍵與繫結相符取決於配置的類型：

* 在西里爾字母等非拉丁配置下，當終端機使用 Kitty 鍵盤協議並報告該位置時，Claude Code 會根據按鍵的美式配置位置來符合 Ctrl 快捷鍵。在這樣的終端機中，使用俄文配置時，按下 Ctrl 和實體 W 鍵會觸發 `ctrl+w`。在不報告位置的終端機中，Claude Code 會符合終端機為按鍵發送的任何內容：ASCII 控制碼會觸發拉丁快捷鍵，而作為西里爾字元到達的按鍵不符合任何繫結
* 在重新排列拉丁字母的配置下，例如 AZERTY，Claude Code 會符合按鍵輸入的字母，因此按下 Ctrl 和標記為 A 的按鍵會觸發 `ctrl+a`

<h3 id="chords">
  和弦
</h3>

和弦是由空格分隔的按鍵組合序列：

```text theme={null}
ctrl+k ctrl+s   按 Ctrl+K，放開，然後按 Ctrl+S
```

在每個按鍵組合的 3 秒內按下下一個。如果您等待更長時間，Claude Code 會取消和弦並顯示簡短通知。

<h3 id="special-keys">
  特殊鍵
</h3>

* `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` - 刪除鍵
* `wheelup`、`wheeldown` - 滑鼠滾輪捲動事件

<h2 id="unbind-default-shortcuts">
  取消繫結預設快捷鍵
</h2>

將動作設定為 `null` 以取消繫結預設快捷鍵：

```json theme={null}
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+s": null
      }
    }
  ]
}
```

這也適用於和弦繫結。取消繫結共享前綴的每個和弦會釋放該前綴以用作單一鍵繫結。任何作用中的內容中的和弦會保留其前綴的保留狀態，因此您必須在定義該和弦的內容中取消繫結每個和弦。

Claude Code 在 `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`
* `Pane`：`ctrl+x left`、`ctrl+x right`、`ctrl+x up`、`ctrl+x down` 和 `ctrl+x x`
* `PaneField`：`ctrl+x x`

`ctrl+x enter` 和弦需要 v2.1.247 或更新版本，`ctrl+x b`、`ctrl+x ctrl+a` 和 `ctrl+x tab` 需要 v2.1.260 或更新版本，而 `ctrl+x ctrl+s` 需要 v2.1.275 或更新版本。

若要將 `ctrl+x` 本身回收為單一鍵繫結，請取消繫結所有這些：

```json theme={null}
{
  "bindings": [
    {
      "context": "Task",
      "bindings": {
        "ctrl+x ctrl+b": null
      }
    },
    {
      "context": "DiffPanel",
      "bindings": {
        "ctrl+x b": null
      }
    },
    {
      "context": "Pane",
      "bindings": {
        "ctrl+x left": null,
        "ctrl+x right": null,
        "ctrl+x up": null,
        "ctrl+x down": null,
        "ctrl+x x": null
      }
    },
    {
      "context": "PaneField",
      "bindings": {
        "ctrl+x x": null
      }
    },
    {
      "context": "Chat",
      "bindings": {
        "ctrl+x ctrl+k": null,
        "ctrl+x ctrl+e": null,
        "ctrl+x enter": null,
        "ctrl+x ctrl+a": null,
        "ctrl+x ctrl+s": null,
        "ctrl+x tab": null,
        "ctrl+x": "chat:newline"
      }
    }
  ]
}
```

如果您取消繫結前綴上的某些但不是全部和弦，按下前綴仍會進入和弦等待模式以進行剩餘的繫結。

<h2 id="reserved-shortcuts">
  保留的快捷鍵
</h2>

這些快捷鍵無法重新繫結：

| 快捷鍵 | 原因 |
| :- | :- |
| 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 上如何讀取它](/docs/zh-TW/terminal-config#fix-backspace-deleting-a-whole-word-on-windows)取決於您的終端機和 [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE`](/docs/zh-TW/env-vars) 環境變數 |
| Caps Lock | 未傳遞至終端機應用程式 |

<h2 id="terminal-conflicts">
  終端機衝突
</h2>

某些快捷鍵可能與終端機多工器衝突：

| 快捷鍵 | 衝突 |
| :- | :- |
| Ctrl+B | tmux 前綴（按兩次以傳送） |
| Ctrl+A | GNU screen 前綴 |
| Ctrl+Z | Unix 程序暫停 (SIGTSTP) |

<h2 id="text-fields">
  文字欄位
</h2>

如果你綁定一個裸露的字母、數字或空格鍵，你仍然可以在對話框或面板內的文字欄位中輸入該字元。其中一個欄位是 Claude 提出問題時的 `Other` 答案。當欄位獲得焦點時，你按下的可列印鍵（不含 Ctrl、Alt 或 Cmd）會進入該欄位，Claude Code 不會根據你的綁定來匹配它。

這些鍵在欄位獲得焦點時仍會執行其綁定：

* 不輸入字元的鍵，例如 Enter、Escape、Tab 和方向鍵
* 任何使用 Ctrl、Alt 或 Cmd 按下的鍵
* 已在進行中的[和弦](#chords)的第二個按鍵

在主提示符處，Claude Code 根據作用中的內容（例如 `Chat`）來匹配每個鍵，只有在沒有綁定取用該鍵時才會輸入該鍵。

<h2 id="vim-mode-interaction">
  Vim 模式互動
</h2>

啟用 vim 模式時（透過 `/config` → 編輯器模式），快捷鍵和 vim 模式獨立運作：

* **Vim 模式**在文字輸入層級處理輸入（游標移動、模式、動作）
* **快捷鍵**在元件層級處理動作（切換待辦事項、提交等）
* vim 模式中的 Escape 鍵從 INSERT 切換到 NORMAL 模式；它不會觸發 `chat:cancel`
* 大多數 Ctrl+鍵快捷鍵通過 vim 模式傳遞到快捷鍵系統
* Vim 鍵無法透過快捷鍵檔案重新對應。若要對應兩鍵 INSERT 模式序列（例如 `jj`）至 Escape，請使用 [`vimInsertModeRemaps`](/docs/zh-TW/interactive-mode#remap-insert-mode-key-sequences) 設定
* 在 vim NORMAL 模式中，`?` 顯示說明選單（vim 行為）
* 在 vim NORMAL 模式中，`/` 開啟歷史搜尋，與標準模式中的 Ctrl+R 相同

<h2 id="validation">
  驗證
</h2>

Claude Code 驗證您的快捷鍵並為以下項目寫入警告到偵錯日誌：

* 解析錯誤（無效的 JSON 或結構）
* 拼寫錯誤的修飾鍵，例如 `ctl+k`。Claude Code 會捨棄它無法識別的部分，並將繫結應用於剩餘的按鍵，在此範例中為 `k`。
* 無效的上下文名稱
* 無效的動作值，例如不是字串或 `null` 的動作
* 未知的動作名稱，例如已註冊動作的拼寫錯誤。Claude Code 會跳過該繫結並保持該按鍵的任何預設繫結有效。
* 保留快捷鍵衝突
* 同一上下文中的重複繫結

使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動 Claude Code 以查看詳細資訊。
