命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
打开或创建快捷键配置文件
/keybindings 是 Claude Code 的会话内 slash 命令,执行后会打开或创建位于 ~/.claude/keybindings.json 的快捷键配置文件,让你自定义终端内所有可绑定的快捷键。
版本要求: 需要 Claude Code v2.1.18 或更高版本(可用 claude --version 确认)。
配置文件的改动会被自动检测并立即生效,无需重启 Claude Code。
在会话输入框中直接输入:
/keybindings
若 ~/.claude/keybindings.json 不存在则自动创建并打开;已存在则直接打开编辑。
文件是一个包含 bindings 数组的 JSON 对象,每个元素指定一个 context 及其键位映射:
{
"$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 |
$docs | 可选,文档链接 |
bindings | 按 context 分组的键位映射数组 |
所有 action 采用 namespace:action 格式,例如 chat:submit、app:toggleTodos。将某个键位的值设为 null 表示解绑该默认快捷键:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+s": null
}
}
]
}
修饰键用 + 分隔:
ctrl+k Ctrl + K
shift+tab Shift + Tab
meta+p macOS 上为 Option+P,其他平台为 Alt+P
ctrl+shift+c 多修饰键组合
可用修饰符关键字:
| 关键字 | 含义 |
|---|---|
ctrl / control | Control 键 |
shift | Shift 键 |
alt / opt / option / meta | Windows/Linux 为 Alt,macOS 为 Option |
cmd / command / super / win | macOS Command、Windows 键、Linux Super 键 |
Chord(和弦) — 两段按键序列用空格分隔:
ctrl+k ctrl+s 先按 Ctrl+K,松开,再按 Ctrl+S
大写字母 — 单独大写字母隐含 Shift(如 K 等同 shift+k),适合 vim 风格绑定。带修饰符时(如 ctrl+K)大写仅为书写风格,不额外附加 Shift。
特殊键名: escape/esc、enter/return、tab、space、up/down/left/right、backspace/delete。
若要将某个 chord 前缀释放为单键,需先解绑该前缀下的所有 chord:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+x ctrl+k": null,
"ctrl+x ctrl+e": null,
"ctrl+x": "chat:newline"
}
}
]
}
若只解绑部分 chord,按下前缀后仍会进入和弦等待模式。
配置文件固定路径为 ~/.claude/keybindings.json(用户级,全局生效)。
$schema 字段指向 SchemaStore 托管的 JSON Schema,可为 VS Code、JetBrains 等编辑器提供自动补全与校验,非必填。
| 快捷键 | 原因 |
|---|---|
Ctrl+C | 硬编码为中断/取消操作 |
Ctrl+D | 硬编码为退出 Claude Code |
Ctrl+M | 终端层面与 Enter 发送相同信号(CR) |
Caps Lock | 终端应用无法接收此键 |
| 快捷键 | 冲突来源 |
|---|---|
Ctrl+B | tmux 默认 prefix(按两次可透传) |
Ctrl+A | GNU screen 默认 prefix |
Ctrl+Z | Unix 进程挂起信号(SIGTSTP) |
cmd/command/super/win 修饰符仅在支持 Kitty 键盘协议或 xterm modifyOtherKeys 模式的终端中生效;大多数终端无法发送该修饰符,建议用 ctrl 或 meta 代替以确保跨终端兼容。
| 机制 | 作用层级 | 配置位置 | 特点 |
|---|---|---|---|
/keybindings | 组件级 action | ~/.claude/keybindings.json | 控制提交、打开编辑器、切换面板等 UI 行为 |
| Vim mode | 文本输入级(光标、模式) | /config → Editor mode | 处理光标移动、INSERT/NORMAL 模式切换 |
两者独立运行,不互相覆盖。Vim mode 下的 Escape 切换输入模式,不触发 chat:cancel;大多数 Ctrl 组合键在 vim NORMAL 模式下仍透传到 keybindings 系统。
| Context | 生效范围 |
|---|---|
Global | 整个应用内任何地方 |
Chat | 主聊天输入框 |
Autocomplete | 自动补全菜单打开时 |
Settings | 设置菜单 |
Confirmation | 权限与确认对话框 |
Tabs | 标签导航组件 |
Help | 帮助菜单可见时 |
Transcript | 完整对话记录查看器 |
HistorySearch | Ctrl+R 历史搜索模式 |
Task | 后台任务运行期间 |
ThemePicker | 主题选择对话框 |
Attachments | 图片附件选择导航 |
Footer | 底栏指示器导航(任务、团队、diff) |
MessageSelector | Rewind / Summarize 对话框的消息选择 |
DiffDialog | Diff 查看器导航 |
ModelPicker | 模型选择器的 effort 等级调节 |
Select | 通用选择 / 列表组件 |
Plugin | Plugin 对话框(浏览、发现、管理) |
Scroll | 全屏渲染模式下的对话滚动与文本选择 |
Doctor | /doctor 诊断页面 |
| Action | 默认键 | 说明 |
|---|---|---|
app:interrupt | Ctrl+C | 取消当前操作(保留键) |
app:exit | Ctrl+D | 退出 Claude Code(保留键) |
app:redraw | (未绑定) | 强制重绘终端 |
app:toggleTodos | Ctrl+T | 切换任务列表可见性 |
app:toggleTranscript | Ctrl+O | 切换详细对话记录 |
| Action | 默认键 | 说明 |
|---|---|---|
chat:submit | Enter | 发送消息 |
chat:newline | Ctrl+J | 插入换行而不发送 |
chat:externalEditor | Ctrl+G, Ctrl+X Ctrl+E | 在外部编辑器中打开当前输入 |
chat:stash | Ctrl+S | 暂存当前 prompt |
chat:cycleMode | Shift+Tab | 循环切换权限模式 |
chat:modelPicker | Meta+P | 打开模型选择器 |
chat:fastMode | Meta+O | 切换 fast mode |
chat:thinkingToggle | Meta+T | 切换 extended thinking |
chat:killAgents | Ctrl+X Ctrl+K | 停止本 session 所有后台子 agent |
chat:imagePaste | Ctrl+V(Windows/WSL 上为 Alt+V) | 从剪贴板粘贴图片 |
chat:clearInput | Ctrl+L | 强制全屏重绘(保留输入) |
chat:undo | Ctrl+_, Ctrl+Shift+- | 撤销上一操作 |
chat:cancel | Escape | 取消当前输入 |
WSL 上的图片粘贴:官方原文为 'Ctrl+V (Alt+V on Windows and WSL). On WSL, both shortcuts are bound by default'。即在 WSL 上
Ctrl+V与Alt+V默认同时绑定到chat:imagePaste,并非用 Alt+V 互斥替换 Ctrl+V。
chat:submit 绑定到 ctrl+enter,避免意外发送多行输入。Select、MessageSelector 等 context 下将 J/K 绑定为上下移动,无需离开键盘主区。Ctrl+S 被终端用于流控制),将其设为 null 解绑。ctrl+x ctrl+k 和 ctrl+x ctrl+e 后,可将 ctrl+x 单独绑定为换行键,兼顾 Emacs 用户习惯。cmd 修饰符在大多数终端无效 — 绝大多数终端不发送 Super/Command 修饰符,写了 cmd+k 但实际上从不触发。统一改用 ctrl 或 meta。
保留键写入配置会触发校验警告 — Ctrl+C/Ctrl+D/Ctrl+M/Caps Lock 无法重绑,写入后 Claude Code 会针对保留键冲突给出校验警告(官方原文 'shows warnings for … Reserved shortcut conflicts')。用 /doctor 可查看所有 keybinding 警告。
Chord 前缀未完全解绑导致单键失效 — 若 ctrl+x ctrl+k 还存在绑定而只设置了 ctrl+x 的映射,按下 Ctrl+X 后仍进入 chord 等待模式而非立即触发新动作。必须把同一前缀下的所有 chord 全部设为 null 再绑定单键。
Ctrl+B 被 tmux 截获 — tmux 默认 prefix 是 Ctrl+B,Claude Code 中的 task:background 默认绑定了该键。官方在 v2.1.169 起新增 Ctrl+X Ctrl+B 的 chord 备选,tmux 用户建议改用 chord 版本或更改 tmux prefix。
新增 /keybindings 命令用于配置自定义键绑定