鍵盤快捷鍵
快捷鍵全都來自同一個 const 登錄表,也就是 lib/core/constants/keybindings.dart 中的 KeybindingRegistry。它包含 49 組綁定。設定 → 你 → 快捷鍵 會把該登錄表呈現為一份唯讀參考:沒有重新綁定的介面,也沒有使用者自訂的按鍵綁定檔案。
下文的 Cmd 是主要命令修飾鍵——macOS 上是 ⌘,Windows 與 Linux 上是 Ctrl。只有在目前畫面上,某個綁定的命令已註冊處理常式,且其 when 子句成立時,該綁定才會觸發;!textInputFocus 則表示按鍵改為直接傳遞給取得焦點的文字欄位。
沒有數字鍵導覽快捷鍵。收件匣、工單、pull request 及其他畫面都從側邊欄或 ⌘K 進入。可觀測性也沒有快捷鍵。
全域(19)
標題為「全域(19)」的章節範圍為 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 request 清單(3)
標題為「Pull request 清單(3)」的章節範圍為 /pull-requests。這些快捷鍵全都要求 route == '/pull-requests',且沒有取得焦點的文字欄位,因此在 PR 詳情路由覆蓋於清單之上時不會觸發。
| 快捷鍵 | 動作 |
|---|---|
R |
重新整理 |
Enter |
開啟 PR |
F |
開啟篩選選單 |
Enter(pr.list-open)已在登錄表中宣告,也出現在按鍵綁定參考上,但清單畫面並未為它註冊處理常式,因此目前不會觸發。F 開啟的是篩選選單(pr.list-open-filter),不是搜尋。
Pull request 詳情(2)
標題為「Pull request 詳情(2)」的章節範圍為 /pull-requests/。重新整理要求沒有取得焦點的文字欄位。關閉分頁沒有文字輸入防護(帶 ⌘ 的按鍵組合永遠不會是純文字),並帶有一條路由正規表示式,因此不會在清單上觸發。
| 快捷鍵 | 動作 | 條件 |
|---|---|---|
R |
重新整理 | 未在欄位中輸入時 |
Cmd/Ctrl + W |
關閉分頁 | 位於 /pull-requests/<…> 位置時 |
分頁切換(1/2/3)、檔案已檢視/收合(V/C)、檔案清單(T)與在差異中尋找(Cmd/Ctrl + F)由 diff 檢視器自己的處理常式負責——參見登錄表之外的 diff 檢視器按鍵。
收件匣(1)
標題為「收件匣(1)」的章節| 快捷鍵 | 動作 |
|---|---|
F |
開啟篩選選單 |
要求 route == '/inbox',且沒有取得焦點的文字欄位。
GitHub 使用者與團隊個人檔案(3)
標題為「GitHub 使用者與團隊個人檔案(3)」的章節範圍為 /users/。when 子句是一條比對 /users/<login>或 /teams/<organization>/<slug> 的正規表示式,再加上沒有取得焦點的文字欄位。
| 快捷鍵 | 動作 |
|---|---|
R |
重新整理 |
/ |
聚焦搜尋 |
Cmd/Ctrl + F |
聚焦搜尋 |
空間(9)
標題為「空間(9)」的章節範圍為 /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 傳送由輸入區的文字欄位負責;按住說話由輸入區的麥克風按鈕負責(它有自己的硬體鍵盤處理常式)。兩者都列在登錄表中,供設定參考。
工作區選擇器(2)
標題為「工作區選擇器(2)」的章節範圍為 /workspaces,只在選擇器本身有效。
| 快捷鍵 | 動作 |
|---|---|
Cmd/Ctrl + N |
新增工作區 |
Enter |
開啟選取的工作區 |
Enter 要求沒有取得焦點的文字欄位。
設定(5)
標題為「設定(5)」的章節| 快捷鍵 | 動作 | 畫面 |
|---|---|---|
J |
下一頁設定頁面 | 任何 /settings 路由,未在輸入時 |
K |
上一頁設定頁面 | 任何 /settings 路由,未在輸入時 |
Cmd/Ctrl + N |
新增代理 | 設定 → 工作區 → 代理 |
Cmd/Ctrl + N |
新增儲存庫 | 設定 → 工作區 → 儲存庫 |
R |
重新掃描配接器 | 設定 → 伺服器 → 模型供應商 |
新聞動態(5)
標題為「新聞動態(5)」的章節範圍為 /newsfeed。全部要求 route == '/newsfeed',且沒有取得焦點的文字欄位。
| 快捷鍵 | 動作 |
|---|---|
J |
下一篇文章 |
K |
上一篇文章 |
Enter |
開啟文章 |
S |
切換書籤 |
R |
重新整理動態來源 |
登錄表之外的 diff 檢視器按鍵
標題為「登錄表之外的 diff 檢視器按鍵」的章節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。