/keybindings 以在 ~/.claude/keybindings.json 建立或開啟您的配置檔案。
配置檔案
快捷鍵配置檔案是一個包含bindings 陣列的物件。每個區塊指定一個上下文和一個按鍵組合到動作的對應。
快捷鍵檔案的變更會自動偵測並套用,無需重新啟動 Claude Code。
此範例在聊天上下文中將
Ctrl+E 繫結到開啟外部編輯器,並取消繫結 Ctrl+U:
上下文
每個繫結區塊指定一個上下文,其中快捷鍵適用:
在 v2.1.205 之前,
/doctor 診斷螢幕存在 Doctor 上下文和 doctor:fix 動作。
可用的動作
動作遵循namespace:action 格式,例如 chat:submit 用於傳送訊息,或 app:toggleTodos 用於顯示工作清單。每個上下文都有特定的可用動作。
應用程式動作
在Global 上下文中可用的動作:
歷史記錄動作
用於導覽命令歷史記錄的動作:聊天動作
在Chat 上下文中可用的動作:
*在沒有 VT 模式的 Windows 上 (Node <24.2.0/<22.17.0, Bun <1.2.23),預設為 Meta+M。
自動完成動作
在Autocomplete 上下文中可用的動作:
確認動作
在Confirmation 上下文中可用的動作:
*在沒有 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。第一次按下後的提示會說明第二次按下是關閉對話框還是結束。兩個按鍵都是 保留的,無法重新綁定。
此範例將 y 綁定到 confirm:yes,將 n 綁定到 confirm:no:
y 和 n 仍然會輸入為字母。
在 v2.1.280 之前,y 也預設綁定到 confirm:yes,n 綁定到 confirm:no。如果您在 v2.1.280 之前使用 /keybindings 建立了 keybindings.json,該檔案會列出兩個綁定,它們會保持有效,直到您刪除這兩行。
權限動作
在Confirmation 上下文中可用的動作,用於權限對話框:
文字記錄動作
在Transcript 上下文中可用的動作:
transcript:toggleShowAll 僅在經典轉譯器中適用;在 全螢幕轉譯 中,文字記錄檢視器不提供顯示全部切換。
歷史記錄搜尋動作
在HistorySearch 上下文中可用的動作:
historySearch:next、historySearch:accept、historySearch:cancel 和 historySearch:execute 預設值適用於經典轉譯器中的內嵌歷史記錄搜尋,它始終搜尋來自所有專案的提示。historySearch:cycleScope 僅在 全螢幕轉譯 中生效,其中 Ctrl+R 開啟搜尋對話框,Ctrl+S 循環其範圍。對話框的其他按鍵是固定的,無法重新綁定:Enter 或 Tab 將突出顯示的符合項放在提示輸入中,Esc 取消。
工作動作
在Task 上下文中可用的動作:
主題動作
在ThemePicker 上下文中可用的動作:
說明動作
在Help 上下文中可用的動作:
標籤動作
在Tabs 上下文中可用的動作:
在標籤式對話框中,當標籤列有焦點時,
tabs:next 和 tabs:previous 會切換標籤。在某些對話框中,例如 /help 和 /sandbox,標籤切換按鍵也可以從標籤的內容內部運作。
Up 和 Down 在標籤列和標籤的內容之間移動焦點,內容中的清單僅在有焦點時才會回應按鍵。
附件動作
在Attachments 上下文中可用的動作:
頁尾動作
在Footer 上下文中可用的動作:
當選定頁尾項目時,例如提示下方代理面板中的列,即使您在
Chat 上下文中將 Enter 重新綁定到 chat:queueSubmit 或 chat:newline,按 Enter 也會開啟它。
Chat 在 Footer 上下文未綁定的按鍵上的綁定,例如 Shift+Tab 用於 chat:cycleMode,在選定項目時保持運作。
訊息選擇器動作
在 倒帶功能表 的訊息清單中,您可以使用 選擇動作 及其預設按鍵在訊息中移動並選擇一個。您對這些動作的Select 綁定也適用於此處。MessageSelector 上下文沒有自己的動作或預設綁定。使用它來僅為此清單變更按鍵,方法是在 MessageSelector 區塊中綁定選擇動作,例如 select:accept。
此範例將 o 綁定到在倒帶功能表中選擇突出顯示的訊息,而不變更任何其他清單:
Select 綁定,並有自己的動作:messageSelector:up、messageSelector:down、messageSelector:top、messageSelector:bottom 和 messageSelector:select。如果您的 keybindings.json 綁定了其中一個名稱,綁定會在此清單中保持運作,作為執行相同操作的選擇動作。Home 和 End 跳轉到清單的任一端;在 v2.1.283 之前,Shift+K 和 Shift+J 等按鍵預設會執行此操作。
差異動作
在DiffDialog 上下文中可用的動作:
檔案清單也透過 選擇動作 回應,透過其預設按鍵和您的
Select 綁定。select:previous 和 select:next 移動到上一個和下一個檔案,Enter 透過 select:accept 開啟選定檔案的差異。若要僅為檔案清單變更其中一個按鍵,請在 DiffDialog 區塊中綁定選擇動作。
在 v2.1.283 之前,檔案清單忽略了 Select 綁定,Enter 透過單獨的 diff:viewDetails 動作開啟選定檔案的差異。如果您的 keybindings.json 綁定了 diff:viewDetails,綁定會在檔案清單中保持運作,作為 select:accept。
差異詳細檢視也將尋呼機樣式按鍵綁定到標準 捲動動作。這些綁定是 DiffDialog 上下文的一部分,僅在詳細檢視中適用;捲動動作 下列出的 Scroll 上下文預設值保持不變。
差異面板動作
用於/diff 在全螢幕轉譯中開啟的 差異面板 的動作。app:cycleDiffBase 在 DiffPanel 上下文中,在面板開啟時有效;其他的在 Global 中。面板需要 Claude Code v2.1.260 或更新版本。
模型選擇器動作
在ModelPicker 上下文中可用的動作:
努力滑塊動作
在EffortSlider 上下文中可用的動作,當您執行不帶引數的 /effort 時開啟的滑塊。滑塊的 Enter 和 Escape 按鍵無法重新綁定。
選擇動作
在Select 上下文中可用的動作:
在清單面板中,例如
/skills 和 /mcp,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 綁定。
外掛程式動作
在Plugin 上下文中可用的動作:
設定動作
在Settings 上下文中可用的動作。select:accept 和 confirm:no 動作會從 選擇 和 確認 上下文重複使用,具有設定特定的行為:變更會在您變更時立即套用到每個設定,因此 Escape 會關閉面板並保存您的變更,而不是拒絕。
代理動作
在Agents 上下文中可用的動作,適用於 代理檢視,使用 claude agents 開啟。需要 v2.1.257 或更新版本。
當代理檢視開啟時,Claude Code 會對
Agents 上下文綁定的任何按鍵使用 Agents 綁定,並忽略同一按鍵上的 Chat 或 Global 綁定。例如,在代理檢視中按 Ctrl+S 會切換工作階段分組,而不是觸發預設的 chat:stash。
分派輸入的外部編輯器快捷鍵不是 Agents 動作。代理檢視遵循 Chat 上下文的 chat:externalEditor 綁定,預設為 Ctrl+G。
綁定在代理檢視中的單個按鍵上觸發,因此綁定到 chat:externalEditor 的 Ctrl+X Ctrl+E 組合不會在那裡開啟編輯器。
語音動作
當 語音聽寫 啟用時,在Chat 上下文中可用的動作:
捲動動作
當 全螢幕轉譯 啟用時,在Scroll 上下文中可用的動作:
按鍵組合語法
修飾鍵
使用+ 分隔符搭配修飾鍵:
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。
例如:
大寫字母
Claude Code 不區分大小寫地解析按鍵名稱,因此K 與 k 的繫結相同,ctrl+K 與 ctrl+k 相同。若要繫結 Shift 和一個字母,請寫 shift+k。
非美式鍵盤配置
即使您的作用中鍵盤配置輸入其他字元,也請將 Ctrl 快捷鍵的按鍵名稱寫成拉丁字元。 Claude Code 如何將您按下的按鍵與繫結相符取決於配置的類型:- 在西里爾字母等非拉丁配置下,當終端機使用 Kitty 鍵盤協議並報告該位置時,Claude Code 會根據按鍵的美式配置位置來符合 Ctrl 快捷鍵。在這樣的終端機中,使用俄文配置時,按下 Ctrl 和實體 W 鍵會觸發
ctrl+w。在不報告位置的終端機中,Claude Code 會符合終端機為按鍵發送的任何內容:ASCII 控制碼會觸發拉丁快捷鍵,而作為西里爾字元到達的按鍵不符合任何繫結 - 在重新排列拉丁字母的配置下,例如 AZERTY,Claude Code 會符合按鍵輸入的字母,因此按下 Ctrl 和標記為 A 的按鍵會觸發
ctrl+a
和弦
和弦是由空格分隔的按鍵組合序列:特殊鍵
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- 滑鼠滾輪捲動事件
取消繫結預設快捷鍵
將動作設定為null 以取消繫結預設快捷鍵:
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 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 本身回收為單一鍵繫結,請取消繫結所有這些:
保留的快捷鍵
這些快捷鍵無法重新繫結:終端機衝突
某些快捷鍵可能與終端機多工器衝突:文字欄位
如果你綁定一個裸露的字母、數字或空格鍵,你仍然可以在對話框或面板內的文字欄位中輸入該字元。其中一個欄位是 Claude 提出問題時的Other 答案。當欄位獲得焦點時,你按下的可列印鍵(不含 Ctrl、Alt 或 Cmd)會進入該欄位,Claude Code 不會根據你的綁定來匹配它。
這些鍵在欄位獲得焦點時仍會執行其綁定:
- 不輸入字元的鍵,例如 Enter、Escape、Tab 和方向鍵
- 任何使用 Ctrl、Alt 或 Cmd 按下的鍵
- 已在進行中的和弦的第二個按鍵
Chat)來匹配每個鍵,只有在沒有綁定取用該鍵時才會輸入該鍵。
Vim 模式互動
啟用 vim 模式時(透過/config → 編輯器模式),快捷鍵和 vim 模式獨立運作:
- Vim 模式在文字輸入層級處理輸入(游標移動、模式、動作)
- 快捷鍵在元件層級處理動作(切換待辦事項、提交等)
- vim 模式中的 Escape 鍵從 INSERT 切換到 NORMAL 模式;它不會觸發
chat:cancel - 大多數 Ctrl+鍵快捷鍵通過 vim 模式傳遞到快捷鍵系統
- Vim 鍵無法透過快捷鍵檔案重新對應。若要對應兩鍵 INSERT 模式序列(例如
jj)至 Escape,請使用vimInsertModeRemaps設定 - 在 vim NORMAL 模式中,
?顯示說明選單(vim 行為) - 在 vim NORMAL 模式中,
/開啟歷史搜尋,與標準模式中的 Ctrl+R 相同
驗證
Claude Code 驗證您的快捷鍵並顯示以下警告:- 解析錯誤(無效的 JSON 或結構)
- 無效的上下文名稱
- 無效的動作值,例如不是字串或
null的動作 - 未知的動作名稱,例如已註冊動作的拼寫錯誤。Claude Code 會跳過該繫結並保持該按鍵的任何預設繫結有效。在 v2.1.246 之前,具有未知動作名稱的繫結會無聲地停用該按鍵
- 保留快捷鍵衝突
- 同一上下文中的重複繫結
--debug 啟動 Claude Code 以查看詳細資訊。