跳转到内容

键盘快捷键

快捷键来自唯一的 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)以及 diff 内查找(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 或该行的拆分按钮会在右侧窗格中打开它,最近文件行上的 × 会将其从列表中移除。

回车发送由输入框负责;按住说话由输入框的麦克风按钮负责(它有自己独立的硬件键盘处理程序)。两者都列在注册表中,供设置参考使用。

作用域为 /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 在 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。