Roo Code 界面支持键盘导航和快捷方式,以简化你的工作流程并减少对鼠标交互的依赖。
可用的键盘命令
Roo Code 提供键盘命令来增强你的工作流程。本页重点介绍 roo.acceptInput 命令,但这里有一个所有键盘命令的快速参考:
| 命令 | 描述 | 默认快捷方式 |
|---|---|---|
roo.acceptInput | 提交文本或接受主要建议 | 无(可配置) |
roo.focus | 聚焦 Roo 输入框 | 无(可配置) |
Arrow Up/Down | 在提示历史中导航 | 内置 |
键盘命令的主要优点
- 键盘驱动界面: 无需鼠标交互即可提交文本或选择主要建议按钮。
- 提高可访问性: 对于行动不便或使用鼠标感到不适的用户至关重要。
- Vim/Neovim 兼容性: 支持来自以键盘为中心的环境的开发人员无缝过渡。
- 工作流程效率: 在开发任务期间减少键盘和鼠标之间的上下文切换。
roo.acceptInput 命令
roo.acceptInput 命令允许你使用键盘快捷方式提交文本或接受建议,而不是点击按钮或在输入区域按 Enter 键。
它的作用
roo.acceptInput 命令是一个通用的输入提交命令。当触发时,它会:
- 在文本输入区域时提交你当前的文本或图像输入(相当于按 Enter 键)。
- 当操作按钮可见时(例如确认/取消按钮或任何其他操作按钮),点击主要(第一个)按钮。
详细设置指南
方法 1:使用 VS Code UI
- 打开命令面板(在 Mac 上是 Ctrl+Shift+P 或 Cmd+Shift+P)。
- 输入“
Preferences: Open Keyboard Shortcuts”。 - 在搜索框中,输入“
roo.acceptInput”。 - 在结果中找到“
Roo: Accept Input/Suggestion”。 - 点击命令左侧的 ➕ 图标。
- 按下你想要的键组合(例如,Ctrl+Enter 或 Alt+Enter)。
- 按 Enter 确认。
方法 2:直接编辑 keybindings.json
- 打开命令面板(在 Mac 上是 Ctrl+Shift+P 或 Cmd+Shift+P)。
- 输入“
Preferences: Open Keyboard Shortcuts (JSON)”。 - 将以下条目添加到 JSON 数组中:
{
"key": "ctrl+enter", // or your preferred key combination
"command": "roo.acceptInput",
"when": "rooViewFocused" // This is a context condition that ensures the command only works when Roo is focused
}
你也可以使用更具体的条件:
{
"key": "ctrl+enter",
"command": "roo.acceptInput",
"when": "webviewViewFocus && webviewViewId == 'roo-cline.SidebarProvider'"
}
推荐的键组合
选择一个不与现有 VS Code 快捷方式冲突的键组合:
Alt+Enter- 输入时易于按下。Ctrl+Space- 对于使用自动完成的人来说很熟悉。Ctrl+Enter- 对于命令执行来说很直观。Alt+A- “Accept”(接受)的首字母缩写。
实际用例
快速开发工作流程
- 文本提交: 无需将手从键盘上移开即可向 Roo 发送消息。
- 操作确认: 接受保存文件、运行命令或应用差异等操作。
- 多步流程: 快速通过需要确认或输入的步骤。
- 连续任务: 将多个任务链接在一起,中断最小。
以键盘为中心的开发
- Vim/Neovim 工作流程: 如果你来自 Vim/Neovim 背景,请保持你以键盘为中心的工作流程。
- IDE 集成: 与其他 VS Code 键盘快捷方式一起使用,以获得无缝体验。
- 代码审查: 在使用 Roo 审查代码时快速接受建议。
- 文档编写: 在生成文档时提交文本并接受格式建议。
可访问性用例
- 手部活动受限: 对于使用鼠标有困难的用户至关重要。
- 预防重复性劳损: 减少鼠标使用以预防或管理重复性劳损。
- 屏幕阅读器集成: 与屏幕阅读器配合良好,适用于视力受损用户。
- 语音控制兼容性: 使用语音控制软件时可以通过语音命令触发。
可访问性优势
roo.acceptInput 命令的设计考虑了可访问性:
- 减少鼠标依赖: 无需伸手去拿鼠标即可完成整个工作流程。
- 减少身体劳损: 帮助因使用鼠标而感到不适或疼痛的用户。
- 替代输入方法: 支持依赖键盘导航的行动不便用户。
- 工作流程优化: 对于来自像 Vim/Neovim 这样的以键盘为中心环境的用户来说尤其有价值。
以键盘为中心的工作流程
这里有一些完整的工作流程示例,展示了如何有效地将键盘快捷方式与 Roo 结合使用:
开发工作流程示例
- 打开 VS Code 并导航到你的项目。
- 通过侧边栏打开 Roo。
- 输入你的请求:“
Create a REST API endpoint for user registration”。 - 当 Roo 询问框架偏好时,使用你的
roo.acceptInput快捷方式选择第一个建议。 - 继续使用快捷方式接受代码生成建议。
- 当 Roo 提议保存文件时,再次使用快捷方式确认。
- 使用 VS Code 的内置快捷方式在创建的文件中导航。
代码审查工作流程
- 选择你要审查的代码并使用 VS Code 的“复制”命令。
- 要求 Roo 审查它:“
Review this code for security issues”。 - 当 Roo 询问有关代码上下文的澄清问题时,使用你的快捷方式接受建议。
- 当 Roo 提供改进建议时,再次使用快捷方式接受实现建议。
故障排除
| 问题 | 解决方案 |
|---|---|
| 快捷方式不起作用 | 确保 Roo 被聚焦(先点击 Roo 面板) |
| 选择了错误的建议 | 该命令始终选择主要(第一个)按钮;如果你需要不同的选项,请使用鼠标 |
| 与现有快捷方式冲突 | 在 VS Code 键盘设置中尝试不同的键组合 |
| 使用时没有视觉反馈 | 这是正常的 - 该命令静默激活功能,没有视觉确认 |
| 快捷方式工作不稳定 | 确保在你的 keybindings.json 中正确配置了 when 子句(要么是 rooViewFocused,要么是特定于 webview 的条件) |
技术实现
roo.acceptInput 命令的实现方式如下:
- 在命令面板中注册为
roo.acceptInput,显示标题为“Roo: Accept Input/Suggestion”。 - 当触发时,它会向活动的 Roo webview 发送一个“
acceptInput”消息。 - webview 根据当前的 UI 状态确定适当的操作:
- 如果操作按钮可见且启用,则点击主要操作按钮。
- 如果文本区域启用并包含文本/图像,则发送消息。
- 没有默认键绑定 - 用户分配他们喜欢的快捷方式。
局限性
- 仅当 Roo 界面处于活动状态时才有效。
- 如果当前没有可用的输入或建议,则无效。
- 当显示多个选项时,优先选择主要(第一个)按钮。
命令行式提示历史导航
使用箭头键像终端一样导航你的提示历史记录。此功能使你可以轻松地重用和优化以前的提示,无论是来自你当前的对话还是过去的任务。
主要功能
- 上/下箭头: 循环浏览以前的提示。
- 上下文感知: 在对话和任务历史之间切换。
- 保留输入: 记住你正在输入的内容。
为什么这很重要
之前: 重用提示意味着向上滚动、复制和粘贴。
- 繁琐且缓慢。
- 容易迷失方向。
- 中断你的工作流程。
有了提示历史导航后: 无需离开键盘即可快速访问过去的提示。
工作原理
导航设计得直观,并适应你当前的上下文。
在活跃对话中
- 上箭头: 显示你发送的最后一个提示。继续按以进一步返回对话。
- 下箭头: 向前移动通过对话历史,最终返回到你正在输入的文本。
开始新聊天
- 上箭头: 显示当前工作区中任务历史中最近的提示。
- 下箭头: 向前移动通过你的任务历史。
边缘情况
- 如果你在导航时开始输入,历史记录将被解除,并保留你的新文本。
- 导航仅在你的光标位于输入框的第一行或最后一行时才有效,以避免干扰多行编辑。
配置
此功能默认启用。没有设置可以配置。
优点
- 更快的工作流程: 无需使用鼠标即可重用提示。
- 更好的上下文: 轻松访问和构建在以前的交互之上。
- 更少的中断: 保持专注于手头的任务。
常见问题
“为什么当我按上箭头时什么都没发生?”
- 你可能在多行提示的中间。光标必须在第一行。
- 当前上下文可能没有可用的历史记录。
“对话历史和任务历史有什么区别?”
- 对话历史包括你当前、活跃聊天会话中的提示。
- 任务历史包括你当前工作区中所有以前任务的初始提示。