Skip to content

Claude Code 允许通过 ~/.claude/keybindings.json 完全自定义键盘快捷键。运行 /keybindings 即可打开配置文件,修改后无需重启立即生效。配置以 bindings 数组为核心,按上下文(chat/editor 等)分组,每条绑定指定 keyaction,也可将 key 设为 null 来解除默认绑定。本文包含所有可用 action 清单、Vim 模式兼容说明,以及典型自定义示例。

自定义键盘快捷键

运行 /keybindings 创建或打开配置文件 ~/.claude/keybindings.json,对 Claude Code 的快捷键进行完全自定义。修改后无需重启即时生效。

配置文件格式

配置文件包含一个 bindings 数组,每个元素指定一个上下文和该上下文下的按键映射:

字段说明
$schema可选的 JSON Schema URL,供编辑器自动补全
$docs可选的文档 URL
bindings按上下文分组的绑定数组

这个示例将 Ctrl+E 绑定为在 Chat 中打开外部编辑器,同时解绑 Ctrl+U

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
      }
    }
  ]
}

值为 null 表示解绑该快捷键。


所有上下文

上下文说明
Global应用全局生效
Chat主聊天输入区
Autocomplete自动补全菜单打开时
Settings设置菜单
Confirmation权限/确认对话框
TabsTab 导航组件
Help帮助菜单可见时
Transcript文本记录查看器
HistorySearch历史搜索模式(Ctrl+R)
Task后台任务运行时
ThemePicker主题选择对话框
Attachments图片/附件栏导航
Footer底部状态导航(任务、团队、diff)
MessageSelector回退/摘要对话框消息选择
DiffDialogDiff 查看器导航
ModelPicker模型选择器推理力度调整
Select通用选择/列表组件
Plugin插件对话框(浏览、发现、管理)
Scroll全屏模式下的对话滚动和文本选择
Doctor/doctor 诊断界面

可用 Action 完整列表

全局 App 操作(Global 上下文)

Action默认键说明
app:interruptCtrl+C取消当前操作
app:exitCtrl+D退出 Claude Code
app:redraw未绑定强制重新渲染终端
app:toggleTodosCtrl+T切换任务列表显示
app:toggleTranscriptCtrl+O切换详细记录显示

历史记录操作

Action默认键说明
history:searchCtrl+R打开历史搜索
history:previous上一条历史
history:next下一条历史

Chat 操作(Chat 上下文)

Action默认键说明
chat:cancelEscape取消当前输入
chat:clearInputCtrl+L清空提示输入框
chat:killAgentsCtrl+X Ctrl+K终止所有后台代理
chat:cycleModeShift+Tab*循环切换权限模式
chat:modelPickerCmd+P / Meta+P打开模型选择器
chat:fastModeMeta+O切换快速模式
chat:thinkingToggleCmd+T / Meta+T切换扩展思考模式
chat:submitEnter提交消息
chat:newlineCtrl+J插入换行(不提交)
chat:undoCtrl+_,Ctrl+Shift+-撤销上一步
chat:externalEditorCtrl+G,Ctrl+X Ctrl+E在外部编辑器中打开
chat:stashCtrl+S暂存当前提示词
chat:imagePasteCtrl+V(Windows 为 Alt+V)粘贴图片

*Windows 不带 VT 模式时(Node < 24.2.0 / < 22.17.0,Bun < 1.2.23),默认为 Meta+M。

语音操作(Chat 上下文,启用语音输入时)

Action默认键说明
voice:pushToTalkSpace(按住)按住说话

自动补全操作(Autocomplete 上下文)

Action默认键说明
autocomplete:acceptTab接受建议
autocomplete:dismissEscape关闭菜单
autocomplete:previous上一个建议
autocomplete:next下一个建议

确认对话框操作(Confirmation 上下文)

Action默认键说明
confirm:yesY, Enter确认
confirm:noN, Escape拒绝
confirm:previous上一个选项
confirm:next下一个选项
confirm:nextFieldTab下一个字段
confirm:toggleSpace切换选择
confirm:cycleModeShift+Tab循环切换权限模式
confirm:toggleExplanationCtrl+E切换权限详情说明
permission:toggleDebugCtrl+D切换权限调试信息

文本记录操作(Transcript 上下文)

Action默认键说明
transcript:toggleShowAllCtrl+E切换显示全部内容
transcript:exitq, Ctrl+C, Escape退出记录查看

历史搜索操作(HistorySearch 上下文)

Action默认键说明
historySearch:nextCtrl+R下一个匹配
historySearch:acceptEscape, Tab接受选择
historySearch:cancelCtrl+C取消搜索
historySearch:executeEnter执行选中命令

任务操作(Task 上下文)

Action默认键说明
task:backgroundCtrl+B将当前任务放到后台

主题操作(ThemePicker 上下文)

Action默认键说明
theme:toggleSyntaxHighlightingCtrl+T切换代码语法高亮

帮助操作(Help 上下文)

Action默认键说明
help:dismissEscape关闭帮助菜单

Tabs 操作(Tabs 上下文)

Action默认键说明
tabs:nextTab, →下一个标签
tabs:previousShift+Tab, ←上一个标签

附件操作(Attachments 上下文)

Action默认键说明
attachments:next下一个附件
attachments:previous上一个附件
attachments:removeBackspace, Delete删除选中附件
attachments:exit↓, Escape退出附件导航
Action默认键说明
footer:next下一个 footer 项
footer:previous上一个 footer 项
footer:up向上导航(顶部时取消选择)
footer:down向下导航
footer:openSelectedEnter打开选中项
footer:clearSelectionEscape清除选择

消息选择操作(MessageSelector 上下文)

Action默认键说明
messageSelector:up↑, K, Ctrl+P向上移动
messageSelector:down↓, J, Ctrl+N向下移动
messageSelector:topCtrl+↑, Shift+↑, Meta+↑, Shift+K跳到顶部
messageSelector:bottomCtrl+↓, Shift+↓, Meta+↓, Shift+J跳到底部
messageSelector:selectEnter选择消息

Diff 操作(DiffDialog 上下文)

Action默认键说明
diff:dismissEscape关闭 Diff 查看器
diff:previousSource上一个 diff 来源
diff:nextSource下一个 diff 来源
diff:previousFile上一个文件
diff:nextFile下一个文件
diff:viewDetailsEnter查看 diff 详情

模型选择器操作(ModelPicker 上下文)

Action默认键说明
modelPicker:decreaseEffort降低推理深度
modelPicker:increaseEffort提高推理深度

选择操作(Select 上下文)

Action默认键说明
select:next↓, J, Ctrl+N下一个选项
select:previous↑, K, Ctrl+P上一个选项
select:acceptEnter接受选择
select:cancelEscape取消选择

插件操作(Plugin 上下文)

Action默认键说明
plugin:toggleSpace切换插件选择
plugin:installI安装选中插件

设置操作(Settings 上下文)

Action默认键说明
settings:search/进入搜索模式
settings:retryR重试加载用量数据(出错时)
settings:closeEnter保存并关闭配置面板(Escape 丢弃并关闭)

Doctor 操作(Doctor 上下文)

Action默认键说明
doctor:fixF将诊断报告发给 Claude 修复(仅在发现问题时可用)

按键语法

修饰键

+ 分隔:

ctrl+k         # Control + K
shift+tab      # Shift + Tab
meta+p         # Command/Meta + P
ctrl+shift+c   # 多个修饰键

支持的修饰键名称:

  • ctrlcontrol
  • altoptoption
  • shift
  • metacmdcommand

大写字母

单独的大写字母默认等于 Shift + 小写字母,即 K 等同于 shift+k(适合 Vim 风格绑定)。

带修饰键时大写不额外加 Shift:ctrl+Kctrl+k 等效。

和弦(连续按键)

用空格分隔两次按键:

ctrl+k ctrl+s   # 先按 Ctrl+K,再按 Ctrl+S

特殊键名

escape/escenter/returntabspaceup/down/left/rightbackspacedelete


解绑默认快捷键

将值设为 null

json
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+s": null
      }
    }
  ]
}

终端冲突

快捷键冲突
Ctrl+Btmux 前缀键(按两次发送)
Ctrl+AGNU screen 前缀键
Ctrl+ZUnix 进程暂停(SIGTSTP)

Vim 模式兼容说明

开启 Vim 模式(/config → Editor mode)后,快捷键和 Vim 模式独立工作:

  • Vim 模式:在文本输入层处理(光标移动、模式切换、操作命令)
  • Keybindings:在组件层处理(切换任务列表、提交等)
  • Vim 模式下 Escape 切换 INSERT → NORMAL 模式,不触发 chat:cancel
  • 大多数 Ctrl+键 快捷键会透传到 keybinding 系统

配置验证

Claude Code 会验证你的 keybindings 并给出警告:

  • JSON 解析错误
  • 无效上下文名称
  • 终端复用器冲突
  • 同一上下文内重复绑定

运行 /doctor 查看所有键绑定警告。

常见问题

Q: 如何自定义 Claude Code 的快捷键?

A: 运行 /keybindings 创建或打开 ~/.claude/keybindings.json 配置文件。在 bindings 数组中指定上下文和按键映射即可,修改后立即生效,无需重启。

Q: 如何解绑不需要的默认快捷键?

A: 将对应绑定的值设为 null,例如:"ctrl+s": null 解绑 Ctrl+S。

Q: Chat 和 Global 上下文有什么区别?

A: Global 上下文的绑定在应用任何位置都生效;Chat 上下文的绑定只在主聊天输入区激活时生效。如果两个上下文绑定了同一个按键,Chat 优先级更高。

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
      }
    }
  ]
}

bindings 是一个数组,每个元素指定一个上下文和该上下文下的按键映射。值为 null 表示解绑该快捷键。


所有上下文

上下文说明
Global应用全局生效
Chat主聊天输入区
Autocomplete自动补全菜单打开时
Settings设置菜单
Confirmation权限/确认对话框
TabsTab 导航组件
Help帮助菜单可见时
Transcript文本记录查看器
HistorySearch历史搜索模式(Ctrl+R)
Task后台任务运行时
ThemePicker主题选择对话框
Attachments图片/附件栏导航
Footer底部状态导航
MessageSelector回退/摘要对话框消息选择
DiffDialogDiff 查看器导航
ModelPicker模型选择器推理力度调整
Select通用选择/列表组件
Plugin插件对话框

可用 Action 完整列表

全局 App 操作(Global 上下文)

Action默认键说明
app:interruptCtrl+C取消当前操作
app:exitCtrl+D退出 Claude Code
app:toggleTodosCtrl+T切换任务列表显示
app:toggleTranscriptCtrl+O切换详细记录显示

历史记录操作

Action默认键说明
history:searchCtrl+R打开历史搜索
history:previous上一条历史
history:next下一条历史

Chat 操作(Chat 上下文)

Action默认键说明
chat:cancelEscape取消当前输入
chat:cycleModeShift+Tab循环切换权限模式
chat:modelPickerCmd+P / Meta+P打开模型选择器
chat:thinkingToggleCmd+T / Meta+T切换扩展思考模式
chat:submitEnter提交消息
chat:undoCtrl+_撤销上一步
chat:externalEditorCtrl+G在外部编辑器中打开
chat:stashCtrl+S暂存当前提示词
chat:imagePasteCtrl+V(Windows 为 Alt+V)粘贴图片

Windows 不带 VT 模式时(Node < 24.2.0 / < 22.17.0,Bun < 1.2.23),chat:cycleMode 默认为 Meta+M。

语音操作(Chat 上下文,启用语音输入时)

Action默认键说明
voice:pushToTalkSpace(按住)按住说话

自动补全操作(Autocomplete 上下文)

Action默认键说明
autocomplete:acceptTab接受建议
autocomplete:dismissEscape关闭菜单
autocomplete:previous上一个建议
autocomplete:next下一个建议

确认对话框操作(Confirmation 上下文)

Action默认键说明
confirm:yesY, Enter确认
confirm:noN, Escape拒绝
confirm:cycleModeShift+Tab循环切换权限模式
confirm:toggleExplanationCtrl+E切换权限详情说明
permission:toggleDebugCtrl+D切换权限调试信息

任务操作(Task 上下文)

Action默认键说明
task:backgroundCtrl+B将当前任务放到后台

Diff 操作(DiffDialog 上下文)

Action默认键说明
diff:dismissEscape关闭 Diff 查看器
diff:previousSource上一个 diff 来源
diff:nextSource下一个 diff 来源
diff:previousFile上一个文件
diff:nextFile下一个文件

按键语法

修饰键

+ 分隔:

ctrl+k         # Control + K
shift+tab      # Shift + Tab
meta+p         # Command/Meta + P
ctrl+shift+c   # 多个修饰键

支持的修饰键名称:

  • ctrlcontrol
  • altoptoption
  • shift
  • metacmdcommand

大写字母

单独的大写字母默认等于 Shift + 小写字母,即 K 等同于 shift+k(适合 Vim 风格绑定)。

带修饰键时大写不额外加 Shift:ctrl+Kctrl+k 等效。

和弦(连续按键)

用空格分隔两次按键:

ctrl+k ctrl+s   # 先按 Ctrl+K,再按 Ctrl+S

特殊键名

escape/escenter/returntabspaceup/down/left/rightbackspacedelete


解绑默认快捷键

将值设为 null

json
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+s": null
      }
    }
  ]
}

保留快捷键(不可修改)

快捷键原因
Ctrl+C硬编码的中断/取消
Ctrl+D硬编码的退出

终端冲突

快捷键冲突
Ctrl+Btmux 前缀键(按两次发送)
Ctrl+AGNU screen 前缀键
Ctrl+ZUnix 进程暂停(SIGTSTP)

Vim 模式兼容说明

开启 Vim 模式(/vim)后,快捷键和 Vim 模式独立工作:

  • Vim 模式:在文本输入层处理(光标移动、模式切换、操作命令)
  • Keybindings:在组件层处理(切换任务列表、提交等)
  • Vim 模式下 Escape 切换 INSERT → NORMAL 模式,不触发 chat:cancel
  • 大多数 Ctrl+键 快捷键会透传到 keybinding 系统

配置验证

Claude Code 会验证你的 keybindings 并给出警告:

  • JSON 解析错误
  • 无效上下文名称
  • 保留快捷键冲突
  • 终端复用器冲突
  • 同一上下文内重复绑定

运行 /doctor 查看所有键绑定警告。