Skip to main content

自定义键盘快捷键

通过键绑定配置文件自定义 CSC 的键盘快捷键。

注意: 自定义键盘快捷键需要 CSC v2.1.18 或更高版本。使用 claude --version 检查你的版本。

CSC 支持自定义键盘快捷键。运行 /keybindings 可创建或打开配置文件 ~/.costrict/keybindings.json

配置文件

键绑定配置文件是一个包含 bindings 数组的对象。每个块指定一个上下文以及按键到操作的映射。

注意: 对键绑定文件的更改会被自动检测并应用,无需重启 CSC。

字段描述
$schema用于编辑器自动补全的可选 JSON Schema URL
$docs可选文档 URL
bindings按上下文分组的绑定块数组

此示例将 Ctrl+E 绑定为在聊天上下文中打开外部编辑器,并取消绑定 Ctrl+U

{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://costrict.ai/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+u": null
}
}
]
}

上下文

每个绑定块指定绑定生效的上下文

上下文描述
Global在应用中全局生效
Chat主聊天输入区域
Autocomplete自动补全菜单打开时
Settings设置菜单
Confirmation权限和确认对话框
Tabs标签页导航组件
Help帮助菜单可见时
Transcript聊天记录查看器
HistorySearch历史搜索模式 (Ctrl+R)
Task后台任务运行中
ThemePicker主题选择对话框
Attachments选择对话框中的图片附件导航
Footer底部指示器导航(任务、团队、差异)
MessageSelector回退和摘要对话框消息选择
DiffDialog差异查看器导航
ModelPicker模型选择器努力级别
Select通用选择/列表组件
Plugin插件对话框(浏览、发现、管理)
Scroll全屏模式下的对话滚动和文本选择

可用操作

操作遵循 namespace:action 格式,例如 chat:submit 用于发送消息,app:toggleTodos 用于显示任务列表。每个上下文都有特定的可用操作。

应用操作

Global 上下文中可用的操作:

操作默认描述
app:interruptCtrl+C取消当前操作
app:exitCtrl+D退出 CSC
app:redraw(未绑定)强制终端重绘
app:toggleTodosCtrl+T切换任务列表可见性
app:toggleTranscriptCtrl+O切换详细聊天记录

历史操作

用于导航命令历史记录的操作:

操作默认描述
history:searchCtrl+R打开历史搜索
history:previousUp上一个历史条目
history:nextDown下一个历史条目

聊天操作

Chat 上下文中可用的操作:

操作默认描述
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:newline(未绑定)插入换行符而不提交
chat:undoCtrl+_, Ctrl+Shift+-撤销上一步操作
chat:externalEditorCtrl+G, Ctrl+X Ctrl+E在外部编辑器中打开
chat:stashCtrl+S暂存当前提示
chat:imagePasteCtrl+V (Windows 上为 Alt+V)粘贴图片

*在未启用 VT 模式的 Windows 上(Node <24.2.0/<22.17.0, Bun <1.2.23),默认为 Meta+M。

自动补全操作

Autocomplete 上下文中可用的操作:

操作默认描述
autocomplete:acceptTab接受建议
autocomplete:dismissEscape关闭菜单
autocomplete:previousUp上一个建议
autocomplete:nextDown下一个建议

确认操作

Confirmation 上下文中可用的操作:

操作默认描述
confirm:yesY, Enter确认操作
confirm:noN, Escape拒绝操作
confirm:previousUp上一个选项
confirm:nextDown下一个选项
confirm:nextFieldTab下一个字段
confirm:previousField(未绑定)上一个字段
confirm:toggleSpace切换选择
confirm:cycleModeShift+Tab循环切换权限模式
confirm:toggleExplanationCtrl+E切换权限说明

权限操作

Confirmation 上下文中用于权限对话框的操作:

操作默认描述
permission:toggleDebugCtrl+D切换权限调试信息

聊天记录操作

Transcript 上下文中可用的操作:

操作默认描述
transcript:toggleShowAllCtrl+E切换显示所有内容
transcript:exitq, Ctrl+C, Escape退出聊天记录视图

历史搜索操作

HistorySearch 上下文中可用的操作:

操作默认描述
historySearch:nextCtrl+R下一个匹配项
historySearch:acceptEscape, Tab接受选择
historySearch:cancelCtrl+C取消搜索
historySearch:executeEnter执行选中的命令

任务操作

Task 上下文中可用的操作:

操作默认描述
task:backgroundCtrl+B将当前任务置于后台

主题操作

ThemePicker 上下文中可用的操作:

操作默认描述
theme:toggleSyntaxHighlightingCtrl+T切换语法高亮

帮助操作

Help 上下文中可用的操作:

操作默认描述
help:dismissEscape关闭帮助菜单

标签页操作

Tabs 上下文中可用的操作:

操作默认描述
tabs:nextTab, Right下一个标签页
tabs:previousShift+Tab, Left上一个标签页

附件操作

Attachments 上下文中可用的操作:

操作默认描述
attachments:nextRight下一个附件
attachments:previousLeft上一个附件
attachments:removeBackspace, Delete移除选中的附件
attachments:exitDown, Escape退出附件导航

底部栏操作

Footer 上下文中可用的操作:

操作默认描述
footer:nextRight下一个底部栏项
footer:previousLeft上一个底部栏项
footer:upUp在底部栏中向上导航(到顶部时取消选择)
footer:downDown在底部栏中向下导航
footer:openSelectedEnter打开选中的底部栏项
footer:clearSelectionEscape清除底部栏选择

消息选择器操作

MessageSelector 上下文中可用的操作:

操作默认描述
messageSelector:upUp, K, Ctrl+P在列表中上移
messageSelector:downDown, J, Ctrl+N在列表中下移
messageSelector:topCtrl+Up, Shift+Up, Meta+Up, Shift+K跳到顶部
messageSelector:bottomCtrl+Down, Shift+Down, Meta+Down, Shift+J跳到底部
messageSelector:selectEnter选择消息

差异操作

DiffDialog 上下文中可用的操作:

操作默认描述
diff:dismissEscape关闭差异查看器
diff:previousSourceLeft上一个差异源
diff:nextSourceRight下一个差异源
diff:previousFileUp差异中的上一个文件
diff:nextFileDown差异中的下一个文件
diff:viewDetailsEnter查看差异详情
diff:back(取决于上下文)在差异查看器中返回

模型选择器操作

ModelPicker 上下文中可用的操作:

操作默认描述
modelPicker:decreaseEffortLeft降低努力级别
modelPicker:increaseEffortRight提高努力级别

选择操作

Select 上下文中可用的操作:

操作默认描述
select:nextDown, J, Ctrl+N下一个选项
select:previousUp, K, Ctrl+P上一个选项
select:acceptEnter接受选择
select:cancelEscape取消选择

插件操作

Plugin 上下文中可用的操作:

操作默认描述
plugin:toggleSpace切换插件选择
plugin:installI安装选中的插件

设置操作

Settings 上下文中可用的操作:

操作默认描述
settings:search/进入搜索模式
settings:retryR重试加载使用数据(出错时)
settings:closeEnter保存更改并关闭配置面板。Escape 放弃更改并关闭

语音操作

Chat 上下文中启用语音听写时可用的操作:

操作默认描述
voice:pushToTalkSpace按住以口述提示

滚动操作

在启用全屏渲染时 Scroll 上下文中可用的操作:

操作默认描述
scroll:lineUp(未绑定)向上滚动一行。鼠标滚轮滚动会触发此操作
scroll:lineDown(未绑定)向下滚动一行。鼠标滚轮滚动会触发此操作
scroll:pageUpPageUp向上滚动半个视口高度
scroll:pageDownPageDown向下滚动半个视口高度
scroll:topCtrl+Home跳到对话开头
scroll:bottomCtrl+End跳到最新消息并重新启用自动跟随
scroll:halfPageUp(未绑定)向上滚动半个视口高度。与 scroll:pageUp 行为相同,为 vi 风格重绑定提供
scroll:halfPageDown(未绑定)向下滚动半个视口高度。与 scroll:pageDown 行为相同,为 vi 风格重绑定提供
scroll:fullPageUp(未绑定)向上滚动整个视口高度
scroll:fullPageDown(未绑定)向下滚动整个视口高度
selection:copyCtrl+Shift+C / Cmd+C将选中的文本复制到剪贴板
selection:clear(未绑定)清除活动的文本选择

按键语法

修饰键

使用 + 分隔符组合修饰键:

  • ctrlcontrol - Control 键
  • altoptoption - Alt/Option 键
  • shift - Shift 键
  • metacmdcommand - Meta/Command 键

例如:

ctrl+k 单个键加修饰键
shift+tab Shift + Tab
meta+p Command/Meta + P
ctrl+shift+c 多个修饰键

大写字母

单独的大写字母隐含 Shift。例如,K 等同于 shift+k。这对于大写和小写键具有不同含义的 vim 风格绑定很有用。

带有修饰键的大写字母(例如 ctrl+K)被视为样式选择,隐含 Shift:ctrl+Kctrl+k 相同。

组合键

组合键是用空格分隔的按键序列:

ctrl+k ctrl+s 按 Ctrl+K,释放,然后按 Ctrl+S

特殊键

  • escapeesc - Escape 键
  • enterreturn - Enter 键
  • tab - Tab 键
  • space - 空格键
  • updownleftright - 方向键
  • backspacedelete - 删除键

取消绑定默认快捷键

将操作设置为 null 可取消绑定默认快捷键:

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

这也适用于组合键绑定。取消绑定共享前缀的所有组合键可释放该前缀作为单键绑定使用:

{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+x ctrl+k": null,
"ctrl+x ctrl+e": null,
"ctrl+x": "chat:newline"
}
}
]
}

如果取消绑定某个前缀的部分而非全部组合键,按下该前缀仍会为剩余绑定进入组合键等待模式。

保留快捷键

这些快捷键无法重新绑定:

快捷键原因
Ctrl+C硬编码的中断/取消
Ctrl+D硬编码的退出
Ctrl+M在终端中与 Enter 相同(两者都发送 CR)

终端冲突

某些快捷键可能与终端多路复用器冲突:

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

Vim 模式交互

通过 /config → 编辑器模式启用 vim 模式时,键绑定和 vim 模式独立运行:

  • Vim 模式在文本输入级别处理输入(光标移动、模式、动作)
  • 键绑定在组件级别处理操作(切换任务列表、提交等)
  • vim 模式下的 Escape 键从 INSERT 切换到 NORMAL 模式;不会触发 chat:cancel
  • 大多数 Ctrl+键 快捷键会穿过 vim 模式传递到键绑定系统
  • 在 vim NORMAL 模式下,? 显示帮助菜单(vim 行为)

验证

CSC 会验证你的键绑定并在以下情况显示警告:

  • 解析错误(无效的 JSON 或结构)
  • 无效的上下文名称
  • 保留快捷键冲突
  • 终端多路复用器冲突
  • 同一上下文中的重复绑定

运行 /doctor 查看任何键绑定警告。