键盘快捷键
快捷键来自唯一的 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)以及 diff 内查找(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 或该行的拆分按钮会在右侧窗格中打开它,最近文件行上的 × 会将其从列表中移除。
回车发送由输入框负责;按住说话由输入框的麦克风按钮负责(它有自己独立的硬件键盘处理程序)。两者都列在注册表中,供设置参考使用。
工作区选择器(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 |
在 diff 中搜索 |
J / K |
下一个 / 上一个文件 |
V |
切换聚焦文件的已查看状态 |
C |
切换聚焦文件的折叠状态 |
T |
显示文件列表 |
Enter |
下一个搜索匹配项(仅在 diff 内查找打开时) |
Shift + Enter |
上一个搜索匹配项 |
Escape |
关闭 diff 内查找,或清除 diff 的文本选区 |
Cmd/Ctrl + C |
复制 diff 选区 |
浏览器保留的组合键
标题为“浏览器保留的组合键”的部分在网页版构建中,浏览器会在页面看到某些加速键之前就将其截获,因此对应的绑定在那里永远不会触发。它们在桌面端可以正常使用。与主命令修饰键组合时会被浏览器保留的按键有:T、W、N 以及数字 1–9。
这涵盖了 Cmd/Ctrl + Alt + 1–9 的工作区切换、Cmd/Ctrl + N(新建空间、新建工作区、新建智能体、添加仓库),以及空间和 PR 详情中的 Cmd/Ctrl + T / Cmd/Ctrl + W。