/keybindings 来创建或打开位于 ~/.claude/keybindings.json 的配置文件。
配置文件
快捷键配置文件是一个包含bindings 数组的对象。每个块指定一个上下文和一个按键映射到操作的映射。
快捷键文件的更改会自动检测并应用,无需重启 Claude Code。
此示例将
Ctrl+E 绑定到在聊天上下文中打开外部编辑器,并取消绑定 Ctrl+U:
上下文
每个绑定块指定一个上下文,其中绑定适用:
在 v2.1.205 之前,
/doctor 诊断屏幕存在 Doctor 上下文和 doctor:fix 操作。
可用操作
操作遵循namespace:action 格式,例如 chat:submit 用于发送消息或 app:toggleTodos 用于显示任务列表。每个上下文都有特定的可用操作。
App 操作
在Global 上下文中可用的操作:
History 操作
用于导航命令历史的操作:Chat 操作
在Chat 上下文中可用的操作:
*在没有 VT 模式的 Windows 上 (Node <24.2.0/<22.17.0, Bun <1.2.23),默认为 Meta+M。
Autocomplete 操作
在Autocomplete 上下文中可用的操作:
Confirmation 操作
在Confirmation 上下文中可用的操作:
*在没有 VT 模式的 Windows 上 (Node <24.2.0/<22.17.0, Bun <1.2.23),默认为 Meta+M。
在 v2.1.257 之前,
confirm:toggleExplanation 操作绑定到默认的 Ctrl+E,在 Bash 和 PowerShell 权限提示上显示模型生成的命令说明。
对话框使用 confirm:yes 和 confirm:no 来接受和取消,即使它们不提出是或否的问题。如果您在此上下文中绑定裸字母(例如 y 或 n),该字母也会作用于从不将其显示为键的对话框。显示 y 和 n 作为其键的对话框会自己读取这些字母,不需要绑定。
在大多数对话框中,按 Ctrl+C 或 Ctrl+D 两次会关闭对话框而不是退出 Claude Code。第一次按下后的提示会说明第二次按下是关闭对话框还是退出。两个键都是 保留的,无法重新绑定。
此示例将 y 绑定到 confirm:yes,将 n 绑定到 confirm:no:
y 和 n 仍然作为字母输入。
在 v2.1.280 之前,y 也默认绑定到 confirm:yes,n 绑定到 confirm:no。如果您在 v2.1.280 之前使用 /keybindings 创建了 keybindings.json,该文件会列出两个绑定,它们会保持有效,直到您删除这两行。
Permission 操作
在Confirmation 上下文中可用的权限对话框操作:
Transcript 操作
在Transcript 上下文中可用的操作:
transcript:toggleShowAll 仅在经典渲染器中应用;在 全屏渲染 中,记录查看器不提供显示全部切换。
History search 操作
在HistorySearch 上下文中可用的操作:
historySearch:next、historySearch:accept、historySearch:cancel 和 historySearch:execute 默认值适用于经典渲染器中的内联历史搜索,它始终搜索来自所有项目的提示。historySearch:cycleScope 仅在 全屏渲染 中生效,其中 Ctrl+R 打开搜索对话框,Ctrl+S 循环其范围。对话框的其他键是固定的,无法重新绑定:Enter 或 Tab 将突出显示的匹配项放在提示输入中,Esc 取消。
Task 操作
在Task 上下文中可用的操作:
Theme 操作
在ThemePicker 上下文中可用的操作:
Help 操作
在Help 上下文中可用的操作:
Tabs 操作
在Tabs 上下文中可用的操作:
在选项卡式对话框中,当选项卡行有焦点时,
tabs:next 和 tabs:previous 会切换选项卡。在某些对话框中,例如 /help 和 /sandbox,选项卡切换键也可以从选项卡的内容中工作。
Up 和 Down 在选项卡行和选项卡的内容之间移动焦点,内容中的列表仅在有焦点时才响应键。
Attachments 操作
在Attachments 上下文中可用的操作:
Footer 操作
在Footer 上下文中可用的操作:
选定页脚项时(例如提示下方的代理面板中的一行),即使您在
Chat 上下文中将 Enter 重新绑定到 chat:queueSubmit 或 chat:newline,Enter 也会打开它。
Chat 绑定在 Footer 上下文未绑定的键上(例如 Shift+Tab 用于 chat:cycleMode)在选定项时继续工作。
Message selector 操作
在 rewind 菜单 的消息列表中,您可以通过 Select 操作 及其默认键在消息中移动并选择一条。您的Select 绑定对这些操作也适用于那里。MessageSelector 上下文没有自己的操作或默认绑定。使用它通过在 MessageSelector 块中绑定 Select 操作(例如 select:accept)来仅为此列表更改键。
此示例将 o 绑定到在 rewind 菜单中选择突出显示的消息,而不更改任何其他列表:
Select 绑定,并有自己的操作:messageSelector:up、messageSelector:down、messageSelector:top、messageSelector:bottom 和 messageSelector:select。如果您的 keybindings.json 绑定了其中一个名称,绑定在此列表中继续工作作为执行相同操作的 Select 操作。Home 和 End 跳到列表的任一端;在 v2.1.283 之前,Shift+K 和 Shift+J 等键默认执行此操作。
Diff 操作
在DiffDialog 上下文中可用的操作:
文件列表也响应 Select 操作,通过它们的默认键和您的
Select 绑定。select:previous 和 select:next 移动到上一个和下一个文件,Enter 通过 select:accept 打开选定文件的 diff。要仅为文件列表更改其中一个键,在 DiffDialog 块中绑定 Select 操作。
在 v2.1.283 之前,文件列表忽略 Select 绑定,Enter 通过单独的 diff:viewDetails 操作打开选定文件的 diff。如果您的 keybindings.json 绑定了 diff:viewDetails,绑定在文件列表中继续工作作为 select:accept。
diff 详细视图也将寻呼机样式的键绑定到标准 滚动操作。这些绑定是 DiffDialog 上下文的一部分,仅在详细视图中应用;滚动操作 下列出的 Scroll 上下文默认值保持不变。
Diff panel 操作
用于 diff 面板 的操作,/diff 在全屏渲染中打开。app:cycleDiffBase 在 DiffPanel 上下文中,在面板打开时处于活动状态;其他的在 Global 中。该面板需要 Claude Code v2.1.260 或更高版本。
Model picker 操作
在ModelPicker 上下文中可用的操作:
Effort slider 操作
在EffortSlider 上下文中可用的操作,当您运行不带参数的 /effort 时打开的滑块。滑块的 Enter 和 Escape 键无法重新绑定。
Select 操作
在Select 上下文中可用的操作:
在列表面板中,例如
/skills 和 /mcp,Claude Code 应用您的 select:pageUp、select:pageDown、select:first 和 select:last 绑定。在大多数其他列表中,例如 /model 选择器,您的 select:first 和 select:last 绑定适用。PageUp 和 PageDown 在这些列表中进行分页,无论您的绑定如何。
在 v2.1.280 之前,这些其他列表忽略 Home、End 和您的 select:first 和 select:last 绑定。
Plugin 操作
在Plugin 上下文中可用的操作:
Settings 操作
在Settings 上下文中可用的操作。select:accept 和 confirm:no 操作从 Select 和 Confirmation 上下文重用,具有特定于设置的行为:更改在您更改时立即应用于每个设置,因此 Escape 关闭面板并保存您的更改,而不是拒绝。
Agents 操作
在Agents 上下文中可用的操作,适用于 agent 视图,使用 claude agents 打开。需要 v2.1.257 或更高版本。
当 agent 视图打开时,Claude Code 对
Agents 上下文绑定的任何键使用 Agents 绑定,并忽略同一键上的 Chat 或 Global 绑定。例如,在 agent 视图中按 Ctrl+S 会切换会话分组,而不是触发默认的 chat:stash。
调度输入的外部编辑器快捷键不是 Agents 操作。Agent 视图遵循 Chat 上下文的 chat:externalEditor 绑定,默认为 Ctrl+G。
绑定在 agent 视图中的单个按键上触发,因此绑定到 chat:externalEditor 的 Ctrl+X Ctrl+E 弦不会在那里打开编辑器。
Voice 操作
当 语音听写 启用时,在Chat 上下文中可用的操作:
Scroll 操作
当 全屏渲染 启用时,在Scroll 上下文中可用的操作:
按键语法
修饰符
使用修饰符键和+ 分隔符:
ctrl或control- Control 键shift- Shift 键alt、opt、option或meta- Windows 和 Linux 上的 Alt 键,macOS 上的 Option 键cmd、command、super或win- macOS 上的 Command 键,Windows 上的 Windows 键,Linux 上的 Super 键
cmd 组仅在报告 Super 修饰符的终端中被检测到,例如支持 Kitty 键盘协议或 xterm 的 modifyOtherKeys 模式的终端。大多数终端不会发送它,因此对于希望在任何地方都能工作的绑定,请使用 ctrl 或 meta。
例如:
大写字母
Claude Code 不区分大小写地解析按键名称,因此K 与 k 的绑定相同,ctrl+K 与 ctrl+k 相同。要绑定 Shift 和一个字母,请写 shift+k。
非美国键盘布局
即使您的活动键盘布局输入其他字符,也要将 Ctrl 快捷键的按键名称写成拉丁字符。 Claude Code 如何将您按下的按键与绑定匹配取决于布局的类型:- 在非拉丁布局(如西里尔字母)下,当终端使用 Kitty 键盘协议并报告该位置时,Claude Code 通过按键的美国布局位置来匹配 Ctrl 快捷键。在这样的终端中,使用俄语布局时,按下 Ctrl 和物理 W 键会触发
ctrl+w。在不报告位置的终端中,Claude Code 匹配终端为按键发送的任何内容:ASCII 控制代码触发拉丁快捷键,作为西里尔字符到达的按键不匹配任何绑定 - 在重新排列拉丁字母的布局(如 AZERTY)下,Claude Code 匹配按键输入的字母,因此按下 Ctrl 和标记为 A 的按键会触发
ctrl+a
和弦
和弦是由空格分隔的按键序列:特殊键
escape或esc- Escape 键enter或return- Enter 键tab- Tab 键space- 空格键up、down、left、right- 箭头键pageup、pagedown- Page Up 和 Page Down 键home、end- Home 和 End 键backspace、delete- 删除键wheelup、wheeldown- 鼠标滚轮滚动事件
取消绑定默认快捷键
将操作设置为null 以取消绑定默认快捷键:
ctrl+x 前缀上绑定这些默认和弦:Chat 中的 ctrl+x ctrl+k、ctrl+x ctrl+e、ctrl+x enter、ctrl+x ctrl+a、ctrl+x ctrl+s 和 ctrl+x tab,Task 中的 ctrl+x ctrl+b,以及 DiffPanel 中的 ctrl+x b。ctrl+x enter 和弦需要 v2.1.247 或更高版本,ctrl+x b、ctrl+x ctrl+a 和 ctrl+x tab 需要 v2.1.260 或更高版本,以及 ctrl+x ctrl+s 需要 v2.1.275 或更高版本。
要将 ctrl+x 本身回收为单键绑定,请取消绑定所有这些:
保留的快捷键
这些快捷键无法重新绑定:终端冲突
某些快捷键可能与终端多路复用器冲突:文本字段
如果你绑定一个裸字母、数字或空格,你仍然可以在对话框或面板内的文本字段中输入该字符。其中一个字段是 Claude 提出问题的Other 答案。当该字段获得焦点时,你按下的不带 Ctrl、Alt 或 Cmd 的可打印键会进入该字段,Claude Code 不会根据你的绑定来匹配它。
这些键在字段获得焦点时仍然会运行其绑定:
- 不输入字符的键,例如 Enter、Escape、Tab 和箭头键
- 任何与 Ctrl、Alt 或 Cmd 一起按下的键
- 已在进行中的和弦的第二个按键
Chat)匹配每个键,仅当没有绑定接受该键时才输入该键。
Vim 模式交互
启用 vim 模式(通过/config → 编辑器模式)时,快捷键和 vim 模式独立运行:
- Vim 模式在文本输入级别处理输入(光标移动、模式、动作)
- 快捷键在组件级别处理操作(切换待办事项、提交等)
- vim 模式中的 Escape 键从 INSERT 切换到 NORMAL 模式;它不触发
chat:cancel - 大多数 Ctrl+key 快捷键通过 vim 模式传递到快捷键系统
- Vim 键不能通过快捷键文件重新映射。要映射两键 INSERT 模式序列(如
jj)到 Escape,请使用vimInsertModeRemaps设置 - 在 vim NORMAL 模式中,
?显示帮助菜单(vim 行为) - 在 vim NORMAL 模式中,
/打开历史搜索,与标准模式中的 Ctrl+R 相同
验证
Claude Code 验证您的快捷键并显示以下警告:- 解析错误(无效的 JSON 或结构)
- 无效的上下文名称
- 无效的操作值,例如不是字符串或
null的操作 - 未知的操作名称,例如注册操作的拼写错误。Claude Code 跳过该绑定并保持该键的任何默认绑定有效。在 v2.1.246 之前,具有未知操作名称的绑定会静默禁用该键
- 保留快捷键冲突
- 同一上下文中的重复绑定
--debug 启动 Claude Code 以查看详细信息。