自定义快捷键

2026-09-28   访问量:0


CodeBuddy Code 支持自定义键盘快捷键。运行 /keybindings 命令创建或打开位于 ~/.codebuddy/keybindings.json 的配置文件。

配置文件

keybindings 配置文件是一个包含 bindings 数组的对象。每个 block 指定一个上下文(context)和按键到动作的映射。

说明:

对 keybindings 文件的更改会自动检测并应用,无需重启 CodeBuddy Code。

字段

说明

$schema

可选,JSON Schema URL,用于编辑器自动补全

$docs

可选,文档 URL

bindings

按上下文组织的绑定块数组

以下示例在 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      }    }  ]}

上下文(Contexts)

每个绑定块指定一个 context,决定快捷键在何时生效:

Context

说明

Global

在应用的任何位置生效

Chat

聊天输入框获得焦点时

InputBox

文本输入框处于活跃状态时

Terminal

终端视图处于活跃状态时

Autocomplete

自动补全菜单显示时

Confirmation

确认/权限对话框显示时

HistorySearch

搜索命令历史时 (Ctrl+R)

Task

任务/代理在前台运行时

Settings

设置面板打开时

CommandPalette

命令面板打开时

Select

选择/列表组件获得焦点时

PermissionDialog

工具权限对话框显示时

Help

帮助页面打开时

Plugin

插件对话框打开时

DiffDialog

Diff 对话框打开时

MessageSelector

消息选择器 (rewind) 打开时

可用动作(Actions)

动作遵循 namespace:action 格式,如 chat:submit 发送消息、app:toggleTodos 切换待办事项列表。每个上下文有特定的可用动作。

应用动作

在 Global 上下文中可用:

动作

默认按键

说明

app:interrupt

Ctrl+C

中断当前操作

app:exit

Ctrl+D

退出 CodeBuddy Code

app:redraw

Ctrl+L

刷新终端屏幕

app:toggleTodos

Ctrl+T

切换待办事项列表

app:toggleTranscript

Ctrl+O

切换详细转录

app:toggleSidebar

Cmd+B

切换侧边栏(Web UI)

app:toggleTerminal

Cmd+J

切换终端(Web UI)

app:commandPalette

Cmd+Shift+P / Ctrl+Shift+P

打开命令面板(Web UI)

app:newChat

Cmd+N

新建对话(Web UI)

app:settings

Cmd+,

打开设置(Web UI)

app:focusInput

Cmd+L

聚焦输入框(Web UI)

历史动作

用于导航命令历史:

动作

默认按键

说明

history:search

Ctrl+R

打开历史搜索

history:previous

Up

上一条历史

history:next

Down

下一条历史

聊天动作

在 Chat 上下文中可用:

动作

默认按键

说明

chat:cancel

Escape

取消当前输入,或中断当前前台请求

chat:submit

Enter

发送消息

chat:killAgents

Ctrl+X Ctrl+K

终止所有后台代理

chat:cycleMode

Shift+Tab (Windows 同时支持 Alt+M)

切换权限模式

chat:modelPicker

Meta+P

打开模型选择器

chat:thinkingToggle

Meta+T

切换扩展思考

chat:undo

Ctrl+_, Ctrl+Shift+-

撤销

chat:externalEditor

Ctrl+G, Ctrl+X Ctrl+E

在外部编辑器中打开

chat:stash

Ctrl+S

暂存当前输入

chat:imagePaste

Ctrl+V (Windows: Alt+V)

粘贴图片

所有平台统一使用 Shift+Tab 作为主快捷键。Windows 上同时保留 Alt+M 作为别名,方便终端不支持 Shift+Tab 时使用。

自动补全动作

在 Autocomplete 上下文中可用:

动作

默认按键

说明

autocomplete:accept

Tab

接受建议

autocomplete:dismiss

Escape

关闭菜单

autocomplete:previous

Up

上一项

autocomplete:next

Down

下一项

确认动作

在 Confirmation 上下文中可用:

动作

默认按键

说明

confirm:yes

Y, Enter

确认

confirm:no

N, Escape

取消

confirm:previous

Up

上一项

confirm:next

Down

下一项

confirm:toggle

Space

切换选中

confirm:toggleExplanation

Ctrl+E

切换权限说明

permission:toggleDebug

Ctrl+D

切换权限调试信息

转录动作

在 Transcript 上下文中可用:

动作

默认按键

说明

transcript:toggleShowAll

Ctrl+E

切换显示全部内容

transcript:exit

Q, Ctrl+C, Escape

退出转录视图

历史搜索动作

在 HistorySearch 上下文中可用:

动作

默认按键

说明

historySearch:next

Ctrl+R

下一条匹配

historySearch:accept

Escape, Tab

接受选择

historySearch:cancel

Ctrl+C

取消搜索

historySearch:execute

Enter

执行选中命令

任务动作

在 Task 上下文中可用:

动作

默认按键

说明

task:background

Ctrl+B

将当前任务转入后台

帮助动作

在 Help 上下文中可用:

动作

默认按键

说明

help:dismiss

Escape

关闭帮助菜单

设置动作

在 Settings 上下文中可用:

动作

默认按键

说明

settings:search

/

进入搜索模式

settings:close

Enter

保存并关闭配置面板

选择列表动作

在 Select 上下文中可用:

动作

默认按键

说明

select:next

Down, J, Ctrl+N

下一项

select:previous

Up, K, Ctrl+P

上一项

select:accept

Enter

确认选择

select:cancel

Escape

取消选择

命令面板动作

在 CommandPalette 上下文中可用:

动作

默认按键

说明

commandPalette:previous

Up

上一项

commandPalette:next

Down

下一项

commandPalette:execute

Enter

执行命令

commandPalette:close

Escape

关闭面板

Diff 动作

在 DiffDialog 上下文中可用:

动作

默认按键

说明

diff:dismiss

Escape

关闭 Diff 查看器

diff:previousFile

Up

上一个文件

diff:nextFile

Down

下一个文件

diff:viewDetails

Enter

查看详情

消息选择器动作

在 MessageSelector 上下文中可用:

动作

默认按键

说明

messageSelector:up

Up, K, Ctrl+P

向上移动

messageSelector:down

Down, J, Ctrl+N

向下移动

messageSelector:top

Shift+Up

跳到顶部

messageSelector:bottom

Shift+Down

跳到底部

messageSelector:select

Enter

选择消息

插件动作

在 Plugin 上下文中可用:

动作

默认按键

说明

plugin:toggle

Space

切换插件选中

plugin:install

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    多个修饰键

弦序列(Chords)

弦序列是用空格分隔的连续按键组合:

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)

Web UI 可视化配置

除了编辑 JSON 文件,您还可以在 Web UI 中通过可视化界面管理快捷键:

在侧边栏点击 快捷键 导航项,或使用 URL #/keybindings

使用搜索框按名称、按键或上下文筛选快捷键

点击编辑按钮(铅笔图标)录制新的快捷键组合

录制对话框会实时显示冲突检测

用户自定义的绑定以左侧高亮边框标记

点击重置按钮可恢复单个绑定为默认值

REST API

Web UI 通过 REST API 管理快捷键:

端点

方法

说明

/api/v1/keybindings

GET

获取所有快捷键(默认 + 用户 + 合并)

/api/v1/keybindings

PUT

保存用户快捷键配置

/api/v1/keybindings/reset

POST

重置为默认值(删除用户配置)

/api/v1/keybindings/validate

POST

验证配置(不保存)

验证

CodeBuddy Code 会验证您的快捷键配置并对以下情况显示警告:

解析错误(无效的 JSON 或结构)

无效的上下文名称

保留快捷键冲突

终端复用器冲突

同一上下文中的重复绑定


热门文章
更多>