CodeBuddy Code 支持自定义键盘快捷键。运行 /keybindings 命令创建或打开位于 ~/.codebuddy/keybindings.json 的配置文件。
keybindings 配置文件是一个包含 bindings 数组的对象。每个 block 指定一个上下文(context)和按键到动作的映射。
说明:
对 keybindings 文件的更改会自动检测并应用,无需重启 CodeBuddy Code。
字段 | 说明 |
| 可选,JSON Schema URL,用于编辑器自动补全 |
| 可选,文档 URL |
| 按上下文组织的绑定块数组 |
以下示例在 Chat 上下文中将 Ctrl+E 绑定到外部编辑器,并解绑 Ctrl+U:
{ "$schema": "https://code.codebuddy.ai/schemas/keybindings.json", "$docs": "https://code.codebuddy.ai/docs/keybindings", "bindings": [ { "context": "Chat", "bindings": { "ctrl+e": "chat:externalEditor", "ctrl+u": null } } ]}
每个绑定块指定一个 context,决定快捷键在何时生效:
Context | 说明 |
| 在应用的任何位置生效 |
| 聊天输入框获得焦点时 |
| 文本输入框处于活跃状态时 |
| 终端视图处于活跃状态时 |
| 自动补全菜单显示时 |
| 确认/权限对话框显示时 |
| 搜索命令历史时 (Ctrl+R) |
| 任务/代理在前台运行时 |
| 设置面板打开时 |
| 命令面板打开时 |
| 选择/列表组件获得焦点时 |
| 工具权限对话框显示时 |
| 帮助页面打开时 |
| 插件对话框打开时 |
| Diff 对话框打开时 |
| 消息选择器 (rewind) 打开时 |
动作遵循 namespace:action 格式,如 chat:submit 发送消息、app:toggleTodos 切换待办事项列表。每个上下文有特定的可用动作。
在 Global 上下文中可用:
动作 | 默认按键 | 说明 |
| Ctrl+C | 中断当前操作 |
| Ctrl+D | 退出 CodeBuddy Code |
| Ctrl+L | 刷新终端屏幕 |
| Ctrl+T | 切换待办事项列表 |
| Ctrl+O | 切换详细转录 |
| Cmd+B | 切换侧边栏(Web UI) |
| Cmd+J | 切换终端(Web UI) |
| Cmd+Shift+P / Ctrl+Shift+P | 打开命令面板(Web UI) |
| Cmd+N | 新建对话(Web UI) |
| Cmd+, | 打开设置(Web UI) |
| Cmd+L | 聚焦输入框(Web UI) |
用于导航命令历史:
动作 | 默认按键 | 说明 |
| Ctrl+R | 打开历史搜索 |
| Up | 上一条历史 |
| Down | 下一条历史 |
在 Chat 上下文中可用:
动作 | 默认按键 | 说明 |
| Escape | 取消当前输入,或中断当前前台请求 |
| Enter | 发送消息 |
| Ctrl+X Ctrl+K | 终止所有后台代理 |
| Shift+Tab (Windows 同时支持 Alt+M) | 切换权限模式 |
| Meta+P | 打开模型选择器 |
| Meta+T | 切换扩展思考 |
| Ctrl+_, Ctrl+Shift+- | 撤销 |
| Ctrl+G, Ctrl+X Ctrl+E | 在外部编辑器中打开 |
| Ctrl+S | 暂存当前输入 |
| Ctrl+V (Windows: Alt+V) | 粘贴图片 |
所有平台统一使用 Shift+Tab 作为主快捷键。Windows 上同时保留 Alt+M 作为别名,方便终端不支持 Shift+Tab 时使用。
在 Autocomplete 上下文中可用:
动作 | 默认按键 | 说明 |
| Tab | 接受建议 |
| Escape | 关闭菜单 |
| Up | 上一项 |
| Down | 下一项 |
在 Confirmation 上下文中可用:
动作 | 默认按键 | 说明 |
| Y, Enter | 确认 |
| N, Escape | 取消 |
| Up | 上一项 |
| Down | 下一项 |
| Space | 切换选中 |
| Ctrl+E | 切换权限说明 |
| Ctrl+D | 切换权限调试信息 |
在 Transcript 上下文中可用:
动作 | 默认按键 | 说明 |
| Ctrl+E | 切换显示全部内容 |
| Q, Ctrl+C, Escape | 退出转录视图 |
在 HistorySearch 上下文中可用:
动作 | 默认按键 | 说明 |
| Ctrl+R | 下一条匹配 |
| Escape, Tab | 接受选择 |
| Ctrl+C | 取消搜索 |
| Enter | 执行选中命令 |
在 Task 上下文中可用:
动作 | 默认按键 | 说明 |
| Ctrl+B | 将当前任务转入后台 |
在 Help 上下文中可用:
动作 | 默认按键 | 说明 |
| Escape | 关闭帮助菜单 |
在 Settings 上下文中可用:
动作 | 默认按键 | 说明 |
| / | 进入搜索模式 |
| Enter | 保存并关闭配置面板 |
在 Select 上下文中可用:
动作 | 默认按键 | 说明 |
| Down, J, Ctrl+N | 下一项 |
| Up, K, Ctrl+P | 上一项 |
| Enter | 确认选择 |
| Escape | 取消选择 |
在 CommandPalette 上下文中可用:
动作 | 默认按键 | 说明 |
| Up | 上一项 |
| Down | 下一项 |
| Enter | 执行命令 |
| Escape | 关闭面板 |
在 DiffDialog 上下文中可用:
动作 | 默认按键 | 说明 |
| Escape | 关闭 Diff 查看器 |
| Up | 上一个文件 |
| Down | 下一个文件 |
| Enter | 查看详情 |
在 MessageSelector 上下文中可用:
动作 | 默认按键 | 说明 |
| Up, K, Ctrl+P | 向上移动 |
| Down, J, Ctrl+N | 向下移动 |
| Shift+Up | 跳到顶部 |
| Shift+Down | 跳到底部 |
| Enter | 选择消息 |
在 Plugin 上下文中可用:
动作 | 默认按键 | 说明 |
| Space | 切换插件选中 |
| I | 安装选中插件 |
使用 + 分隔符组合修饰键:
ctrl 或 control — Control 键
alt、opt 或 option — Alt/Option 键
shift — Shift 键
meta、cmd 或 command — Meta/Command 键
示例:
ctrl+k 单个修饰键 + 按键shift+tab Shift + Tabmeta+p Command/Meta + Pctrl+shift+c 多个修饰键
弦序列是用空格分隔的连续按键组合:
ctrl+x ctrl+k 先按 Ctrl+X,松开,再按 Ctrl+Kctrl+x ctrl+e 先按 Ctrl+X,松开,再按 Ctrl+E
弦序列有 1000ms 超时。如果超时未完成第二步,弦序列将被取消。
escape 或 esc — Escape 键
enter 或 return — Enter 键
tab — Tab 键
space — 空格键
up、down、left、right — 方向键
backspace、delete — 删除键
将动作设为 null 以解绑默认快捷键:
{ "bindings": [ { "context": "Chat", "bindings": { "ctrl+s": null } } ]}
解绑弦序列的所有组合后,可以将前缀键用作单键绑定:
{ "bindings": [ { "context": "Chat", "bindings": { "ctrl+x ctrl+k": null, "ctrl+x ctrl+e": null, "ctrl+x": "chat:newline" } } ]}
如果只解绑了部分弦序列,按下前缀键仍会进入弦等待模式。
以下快捷键不可重新绑定:
快捷键 | 原因 |
Ctrl+C | 硬编码的中断/取消 |
Ctrl+D | 硬编码的退出 |
Ctrl+M | 在终端中等同于 Enter(两者都发送 CR) |
某些快捷键可能与终端复用器冲突:
快捷键 | 冲突 |
Ctrl+B | tmux 前缀键(按两次发送) |
Ctrl+A | GNU screen 前缀键 |
Ctrl+Z | Unix 进程挂起 (SIGTSTP) |
除了编辑 JSON 文件,您还可以在 Web UI 中通过可视化界面管理快捷键:
在侧边栏点击 快捷键 导航项,或使用 URL #/keybindings
使用搜索框按名称、按键或上下文筛选快捷键
点击编辑按钮(铅笔图标)录制新的快捷键组合
录制对话框会实时显示冲突检测
用户自定义的绑定以左侧高亮边框标记
点击重置按钮可恢复单个绑定为默认值
Web UI 通过 REST API 管理快捷键:
端点 | 方法 | 说明 |
| GET | 获取所有快捷键(默认 + 用户 + 合并) |
| PUT | 保存用户快捷键配置 |
| POST | 重置为默认值(删除用户配置) |
| POST | 验证配置(不保存) |
CodeBuddy Code 会验证您的快捷键配置并对以下情况显示警告:
解析错误(无效的 JSON 或结构)
无效的上下文名称
保留快捷键冲突
终端复用器冲突
同一上下文中的重复绑定