是什么
keybindings 允许自定义 Claude Code 内部的键盘快捷键,通过 ~/.claude/keybindings.json 配置文件实现。支持按 context(界面区域)分别绑定,修改后无需重启即时生效。
核心机制
配置文件格式
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}null值解绑快捷键- 文件变更自动检测,无需重启
Context 列表
| Context | 适用场景 |
|---|---|
Global | 全局,任何地方 |
Chat | 主聊天输入区 |
Autocomplete | 自动补全菜单打开时 |
Confirmation | 权限确认对话框 |
Task | 后台任务运行时 |
Scroll | 全屏模式的对话滚动和文本选择 |
DiffDialog | Diff 查看器 |
ModelPicker | 模型选择器 |
HistorySearch | Ctrl+R 历史搜索 |
Transcript | Transcript 查看器 |
常用 Actions(Chat context)
chat:submit:提交消息chat:newline:插入换行chat:externalEditor:打开外部编辑器chat:clearInput:清空输入chat:historyPrev/chat:historyNext:历史导航
打开/创建配置文件
/keybindings关键细节
- 需要 Claude Code v2.1.18+
- 快捷键格式:
ctrl+e、meta+k、shift+enter等 - 与终端快捷键的区别:keybindings 配置 Claude Code 内部响应的键,terminal-config 配置终端发送的信号
chat:newline和chat:submit可以互换绑定,实现 Enter 换行、Shift+Enter 提交的习惯
与其他概念的关联
- terminal-config - 终端层面的键盘信号配置(Shift+Enter 等)
- settings - keybindings 文件路径和配置体系
实践要点
- 修改
chat:newline和chat:submit的绑定可以改变 Enter 键行为 - 解绑默认快捷键:将值设为
null - 使用
$schema字段获得编辑器自动补全支持