Claude Code 支持全面自定义快捷键,通过 ~/.claude/keybindings.json 配置文件实现,修改后无需重启即时生效。
配置文件
/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后,VS Code 等编辑器会提供自动补全和验证。
将快捷键设为 null 可解绑该快捷键(覆盖默认绑定)。
18 种 Context
| Context | 适用范围 |
|---|---|
Global | 应用全局 |
Chat | 主聊天输入区 |
Autocomplete | 自动补全菜单打开时 |
Settings | 设置菜单 |
Confirmation | 权限和确认对话框 |
Tabs | 标签页导航 |
Help | 帮助菜单可见时 |
Transcript | 对话历史查看器 |
HistorySearch | 历史搜索模式(Ctrl+R) |
Task | 后台任务运行时 |
ThemePicker | 主题选择对话框 |
Attachments | 图片/附件栏导航 |
Footer | 底部指示器(任务/团队/Diff) |
MessageSelector | 回滚/摘要对话框消息选择 |
DiffDialog | Diff 查看器导航 |
ModelPicker | 模型选择器 effort 级别 |
Select | 通用选择/列表组件 |
Plugin | 插件对话框(浏览/发现/管理) |
常用 Action 速查
Global
| Action | 默认快捷键 | 说明 |
|---|---|---|
app:interrupt | Ctrl+C | 取消当前操作 |
app:exit | Ctrl+D | 退出 Claude Code |
app:toggleTodos | Ctrl+T | 切换任务列表 |
app:toggleTranscript | Ctrl+O | 切换详细输出 |
history:search | Ctrl+R | 打开历史搜索 |
history:previous | Up | 上一条历史 |
history:next | Down | 下一条历史 |
Chat
| Action | 默认快捷键 | 说明 |
|---|---|---|
chat:submit | Enter | 发送消息 |
chat:cancel | Escape | 取消输入 |
chat:cycleMode | Shift+Tab | 切换权限模式 |
chat:modelPicker | Cmd+P / Meta+P | 打开模型选择器 |
chat:thinkingToggle | Cmd+T / Meta+T | 切换扩展思考 |
chat:externalEditor | Ctrl+G | 在外部编辑器中编辑 |
chat:stash | Ctrl+S | 暂存当前提示词 |
chat:imagePaste | Ctrl+V | 粘贴图片 |
chat:undo | Ctrl+_ | 撤销 |
Confirmation
| Action | 默认快捷键 | 说明 |
|---|---|---|
confirm:yes | Y, Enter | 确认 |
confirm:no | N, Escape | 拒绝 |
confirm:nextField | Tab | 下一个字段 |
confirm:cycleMode | Shift+Tab | 切换权限模式 |
confirm:toggleExplanation | Ctrl+E | 切换权限说明 |
permission:toggleDebug | Ctrl+D | 切换权限调试信息 |
Transcript / DiffDialog / MessageSelector
| Action | 默认快捷键 | 说明 |
|---|---|---|
transcript:close | Ctrl+O, Escape | 关闭 Transcript |
transcript:scrollUp | Up | 向上滚动 |
transcript:scrollDown | Down | 向下滚动 |
diff:prev | Left / Up | 上一个 Diff 文件 |
diff:next | Right / Down | 下一个 Diff 文件 |
diff:close | Escape | 关闭 Diff |
messageSelector:confirm | Enter | 确认选择消息 |
messageSelector:cancel | Escape | 取消选择 |
ModelPicker
| Action | 默认快捷键 | 说明 |
|---|---|---|
model:effortUp | Right | 增加 effort 级别 |
model:effortDown | Left | 降低 effort 级别 |
Keystroke 语法
修饰键
| 修饰符 | 写法 |
|---|---|
| Ctrl | ctrl+key |
| Alt / Meta / Option | alt+key 或 meta+key |
| Cmd(macOS) | cmd+key |
| Shift | shift+key |
| 组合 | ctrl+shift+key |
特殊键名
Enter, Escape, Tab, Space
Up, Down, Left, Right
Backspace, Delete
F1–F12
大写字母
shift+a 和 A(大写字母)不同:shift+a 表示 Shift+A 组合键,A 表示大写字母 A。
Chord(和弦,连续按键)
两个快捷键顺序触发,用逗号分隔:
{
"context": "Chat",
"bindings": {
"ctrl+x ctrl+s": "chat:submit"
}
}注意事项
不可解绑的保留快捷键
Ctrl+C(系统级中断)Ctrl+D(EOF 退出)
终端冲突
某些快捷键由终端应用处理,在 Claude Code 中无法配置:
Ctrl+Z:终端挂起信号Ctrl+Q/Ctrl+S:终端流控制(部分终端)Ctrl+\:发送 SIGQUIT
Vim 模式交互
Vim NORMAL 模式下,大多数快捷键被 Vim 命令占用;只有 app: 前缀的全局 Action 在 Vim NORMAL 模式下有效。
验证
Claude Code 启动时验证 keybindings.json,配置错误时显示具体错误信息。
原文:Customize keyboard shortcuts - Claude Code Docs | 来源:Anthropic 官方文档