Claude Code 支持完全自定义键盘快捷键。运行 /keybindings 创建或打开 ~/.claude/keybindings.json 配置文件,即可修改任意按键绑定。
配置文件格式#
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}
| 字段 | 说明 |
|---|
$schema | JSON Schema URL,提供编辑器自动补全 |
$docs | 文档链接 |
bindings | 绑定块数组,每个块指定一个 Context |
context | 绑定生效的界面上下文 |
将某个按键设为 null 即可解绑该快捷键(如上面的 ctrl+u)。
Context 上下文一览#
| Context | 说明 |
|---|
Global | 全局生效,任何界面状态下均有效 |
Chat | 主聊天输入区域 |
Autocomplete | 自动补全菜单打开时 |
Settings | 设置菜单(只允许 Escape 关闭) |
Confirmation | 权限确认和确认对话框 |
Tabs | Tab 导航组件 |
Help | 帮助菜单可见时 |
Transcript | 对话记录查看器 |
HistorySearch | 历史搜索模式(Ctrl+R) |
Task | 后台任务运行时 |
ThemePicker | 主题选择对话框 |
Attachments | 图片/附件导航栏 |
Footer | 底部指示器(任务、团队、差异) |
MessageSelector | 消息倒回和摘要对话框的消息选择 |
DiffDialog | 差异查看器导航 |
ModelPicker | 模型选择器努力级别 |
Select | 通用选择/列表组件 |
Plugin | 插件对话框(浏览、发现、管理) |
全部默认键位速查#
全局(Global)#
| 动作 | 默认键位 | 说明 |
|---|
app:interrupt | Ctrl+C | 取消当前操作 |
app:exit | Ctrl+D | 退出 Claude Code |
app:toggleTodos | Ctrl+T | 切换任务列表显示 |
app:toggleTranscript | Ctrl+O | 切换详细对话记录 |
历史记录(History)#
| 动作 | 默认键位 | 说明 |
|---|
history:search | Ctrl+R | 打开历史搜索 |
history:previous | ↑ | 上一条历史 |
history:next | ↓ | 下一条历史 |
聊天输入(Chat)#
| 动作 | 默认键位 | 说明 |
|---|
chat:cancel | Escape | 取消当前输入 |
chat:cycleMode | Shift+Tab | 循环切换权限模式 |
chat:modelPicker | Cmd+P / Meta+P | 打开模型选择器 |
chat:thinkingToggle | Cmd+T / Meta+T | 切换扩展思考模式 |
chat:submit | Enter | 提交消息 |
chat:undo | Ctrl+_ | 撤销上次操作 |
chat:externalEditor | Ctrl+G | 在外部编辑器中打开 |
chat:stash | Ctrl+S | 暂存当前提示词 |
chat:imagePaste | Ctrl+V(Windows: Alt+V) | 粘贴图片 |
自动补全(Autocomplete)#
| 动作 | 默认键位 | 说明 |
|---|
autocomplete:accept | Tab | 接受建议 |
autocomplete:dismiss | Escape | 关闭菜单 |
autocomplete:previous | ↑ | 上一个建议 |
autocomplete:next | ↓ | 下一个建议 |
确认对话框(Confirmation)#
| 动作 | 默认键位 | 说明 |
|---|
confirm:yes | Y / Enter | 确认操作 |
confirm:no | N / Escape | 拒绝操作 |
confirm:previous | ↑ | 上一个选项 |
confirm:next | ↓ | 下一个选项 |
confirm:nextField | Tab | 下一个字段 |
confirm:cycleMode | Shift+Tab | 循环权限模式 |
confirm:toggleExplanation | Ctrl+E | 切换权限说明 |
permission:toggleDebug | Ctrl+D | 切换权限调试信息 |
任务与后台(Task)#
| 动作 | 默认键位 | 说明 |
|---|
task:background | Ctrl+B | 将当前任务转入后台 |
历史搜索(HistorySearch)#
| 动作 | 默认键位 | 说明 |
|---|
historySearch:next | Ctrl+R | 下一个匹配 |
historySearch:accept | Escape / Tab | 接受选择 |
historySearch:cancel | Ctrl+C | 取消搜索 |
historySearch:execute | Enter | 执行选中命令 |
对话记录(Transcript)#
| 动作 | 默认键位 | 说明 |
|-----------------------------|--------------------|--------------------||
| transcript:toggleShowAll | Ctrl+E | 切换显示全部内容 |
| transcript:exit | Ctrl+C / Escape | 退出记录查看 |
自定义示例#
示例 1:重新绑定外部编辑器#
将打开外部编辑器从 Ctrl+G 改为 Ctrl+E,并解绑 Ctrl+G:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+g": null
}
}
]
}
示例 2:全局自定义#
{
"bindings": [
{
"context": "Global",
"bindings": {
"ctrl+b": "app:toggleTodos"
}
},
{
"context": "Chat",
"bindings": {
"ctrl+enter": "chat:submit",
"enter": null
}
}
]
}
这个配置将提交改为 Ctrl+Enter,让普通 Enter 只换行,非常适合习惯多行编辑的用户。
使用 JSON Schema 获得编辑器补全#
添加 $schema 字段后,VS Code 等支持 JSON Schema 的编辑器会提供:
- 所有可用 Action 的自动补全
- 按键格式验证
- 悬停文档提示
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json"
}
原文:Customize keyboard shortcuts - Claude Code Docs | 来源:Anthropic 官方文档