跳到內容

鍵盤快捷鍵

快捷鍵全都來自同一個 const 登錄表,也就是 lib/core/constants/keybindings.dart 中的 KeybindingRegistry。它包含 49 組綁定。設定 → 你 → 快捷鍵 會把該登錄表呈現為一份唯讀參考:沒有重新綁定的介面,也沒有使用者自訂的按鍵綁定檔案。

下文的 Cmd 是主要命令修飾鍵——macOS 上是 ⌘,Windows 與 Linux 上是 Ctrl。只有在目前畫面上,某個綁定的命令已註冊處理常式,且其 when 子句成立時,該綁定才會觸發;!textInputFocus 則表示按鍵改為直接傳遞給取得焦點的文字欄位。

沒有數字鍵導覽快捷鍵。收件匣、工單、pull request 及其他畫面都從側邊欄或 ⌘K 進入。可觀測性也沒有快捷鍵。

範圍為 global,因此它們在殼層的任何地方都有效。

快捷鍵 動作 條件
Cmd/Ctrl + K 命令面板 —
Shift + / (?) 鍵盤快捷鍵速查表 未在欄位中輸入時
Cmd/Ctrl + Z 復原 未在欄位中輸入時(取得焦點的欄位保有自己的復原功能)
Cmd/Ctrl + Shift + Z 重做 未在欄位中輸入時
Cmd/Ctrl + Shift + T 切換佈景主題 —
Cmd/Ctrl + , 開啟設定(會停在 /settings/you/appearance) —
Cmd/Ctrl + Shift + Alt + F 切換專注模式 —
Cmd/Ctrl + Shift + W 切換工作區切換器 —
Cmd/Ctrl + ] 下一個工作區 —
Cmd/Ctrl + [ 上一個工作區 —
Cmd/Ctrl + Alt + 1 … Cmd/Ctrl + Alt + 9 切換至工作區 1–9 —

範圍為 /pull-requests。這些快捷鍵全都要求 route == '/pull-requests',且沒有取得焦點的文字欄位,因此在 PR 詳情路由覆蓋於清單之上時不會觸發。

快捷鍵 動作
R 重新整理
Enter 開啟 PR
F 開啟篩選選單

Enter(pr.list-open)已在登錄表中宣告,也出現在按鍵綁定參考上,但清單畫面並未為它註冊處理常式,因此目前不會觸發。F 開啟的是篩選選單(pr.list-open-filter),不是搜尋。

範圍為 /pull-requests/。重新整理要求沒有取得焦點的文字欄位。關閉分頁沒有文字輸入防護(帶 ⌘ 的按鍵組合永遠不會是純文字),並帶有一條路由正規表示式,因此不會在清單上觸發。

快捷鍵 動作 條件
R 重新整理 未在欄位中輸入時
Cmd/Ctrl + W 關閉分頁 位於 /pull-requests/<…> 位置時

分頁切換(1/2/3)、檔案已檢視/收合(V/C)、檔案清單(T)與在差異中尋找(Cmd/Ctrl + F)由 diff 檢視器自己的處理常式負責——參見登錄表之外的 diff 檢視器按鍵。

快捷鍵 動作
F 開啟篩選選單

要求 route == '/inbox',且沒有取得焦點的文字欄位。

範圍為 /users/。when 子句是一條比對 /users/<login>或 /teams/<organization>/<slug> 的正規表示式,再加上沒有取得焦點的文字欄位。

快捷鍵 動作
R 重新整理
/ 聚焦搜尋
Cmd/Ctrl + F 聚焦搜尋

範圍為 /spaces。when 子句使用正規表示式,因此無論是在空間清單(/spaces)或已選取的空間(/spaces/<id>)上都會觸發。

快捷鍵 動作 條件
Enter 傳送訊息 —
Cmd/Ctrl + N 新增空間 位於 /spaces 路由時
J 下一個空間 未在欄位中輸入時
K 上一個空間 未在欄位中輸入時
Cmd/Ctrl + Shift + D 按住說話聽寫 —
Cmd/Ctrl + T 開啟編輯器分頁 位於 /spaces 路由時
Cmd/Ctrl + W 關閉編輯器分頁 位於 /spaces 路由時
Cmd/Ctrl + B 切換編輯器側邊欄 位於 /spaces 路由時
Cmd/Ctrl + P 前往檔案 位於 /spaces 路由時

「前往檔案」會開啟一個選擇器,列出對話的檔案。未輸入任何內容時,會列出你最近開啟的檔案;輸入後,會在對話工作樹的所有檔案中搜尋。Enter 會在新分頁中開啟所選檔案,Cmd/Ctrl + Enter 或該列的分割按鈕會在右側窗格中開啟它,最近檔案列上的 × 則會將其從清單中移除。

按 Enter 傳送由輸入區的文字欄位負責;按住說話由輸入區的麥克風按鈕負責(它有自己的硬體鍵盤處理常式)。兩者都列在登錄表中,供設定參考。

範圍為 /workspaces,只在選擇器本身有效。

快捷鍵 動作
Cmd/Ctrl + N 新增工作區
Enter 開啟選取的工作區

Enter 要求沒有取得焦點的文字欄位。

快捷鍵 動作 畫面
J 下一頁設定頁面 任何 /settings 路由,未在輸入時
K 上一頁設定頁面 任何 /settings 路由,未在輸入時
Cmd/Ctrl + N 新增代理 設定 → 工作區 → 代理
Cmd/Ctrl + N 新增儲存庫 設定 → 工作區 → 儲存庫
R 重新掃描配接器 設定 → 伺服器 → 模型供應商

範圍為 /newsfeed。全部要求 route == '/newsfeed',且沒有取得焦點的文字欄位。

快捷鍵 動作
J 下一篇文章
K 上一篇文章
Enter 開啟文章
S 切換書籤
R 重新整理動態來源

PR diff 檢視器會自行處理這些按鍵(PrDiffKeyboardHandler)。搜尋/已檢視/收合只列在登錄表的註解中,純粹供設定參考——並未註冊任何派送器處理常式,因此派送器會把它們留給 diff 檢視畫面。它們不會在按鍵綁定參考上以獨立列的形式出現。

快捷鍵 動作
Cmd/Ctrl + F 在差異中搜尋
J / K 下一個/上一個檔案
V 切換目前焦點檔案的已檢視狀態
C 切換目前焦點檔案的收合狀態
T 顯示檔案清單
Enter 下一個搜尋結果(僅在「在差異中尋找」開啟時)
Shift + Enter 上一個搜尋結果
Escape 關閉「在差異中尋找」,或清除差異的文字選取範圍
Cmd/Ctrl + C 複製差異中選取的內容

在網頁版本中,瀏覽器會在某些加速鍵送達頁面之前先取用它們,因此這些對應的綁定在網頁上永遠不會觸發。它們在桌面版可正常運作。與主要命令修飾鍵組合時會被保留的按鍵有:T、W、N 以及數字 1–9。

這涵蓋了 Cmd/Ctrl + Alt + 1–9 的工作區切換、Cmd/Ctrl + N(新增空間、新增工作區、新增代理、新增儲存庫),以及空間與 PR 詳情中的 Cmd/Ctrl + T / Cmd/Ctrl + W。