第 19 章:命令系统进阶
在前面的章节中,我们系统学习了 Claude Code 的各项核心功能——从对话理解、代码编辑、终端执行,到模式切换、上下文管理、权限安全。这些功能构成了 Claude Code 的能力基础,但真正让你每天流畅使用的,是它的命令系统。
命令系统是你与 Claude Code 之间的交互语言。它由三部分组成:以 / 开头的斜杠命令(告诉 Claude Code 做什么)、键盘快捷键(用最快的速度触发操作)、以及自定义 Keybindings(让快捷键符合你的肌肉记忆)。掌握这三者,你就不再是"用 Claude Code",而是"与 Claude Code 协作"——操作行云流水,思绪不被操作打断。
本章目标:全面掌握 Claude Code 的斜杠命令体系、键盘快捷键和自定义 Keybindings;能够创建自定义命令;学会将常用操作组合成高效的工作流。
19.1 斜杠命令完整列表
斜杠命令(Slash Commands)是在对话中输入 /<命令> 来触发特定功能的内置指令。它们是 Claude Code 的"控制面板"——不需要鼠标、不需要跳转到其他界面,在对话流中即可完成配置调整、模式切换、任务管理等各种操作。
斜杠命令的语法遵循一个简单规则:
/命令名 [可选参数]在对话输入框中输入 / 时,VSCode 扩展会弹出命令补全菜单,显示所有可用命令及其说明。你可以通过方向键选择,也可以直接输入命令名的前几个字母来筛选。
19.1.1 会话管理
会话管理命令控制当前对话的状态——清空、压缩、查看配置、检查上下文用量。
| 命令 | 说明 | 示例 |
|---|---|---|
/clear | 清空当前对话,开始全新话题 | — |
/compact | 压缩对话历史,释放上下文空间 | /compact 只保留性能优化相关内容 |
/config | 打开 Claude Code 配置界面 | — |
/context | 显示当前上下文使用情况(token 用量、文件加载等) | — |
/clear 是最常用的命令之一。当你完成一个任务、准备切换到另一个不相关的任务时,用 /clear 清空对话可以避免前一个话题的上下文对后续对话产生干扰。相当于"新开一个聊天窗口"——但比关闭侧边栏再打开更快。
什么时候用
/clear:任务切换时(如从"修复登录 Bug"切换到"重构数据库查询层");对话过长得不到满意结果时(有时清空重来比在长对话中反复修正更高效)。
/compact 用于长对话场景。当你与 Claude Code 进行了一个多小时的深度协作后,对话历史可能已经积累了数万 token。这些历史中既有关键信息(如"项目使用 React 18"、"约定的 API 响应格式"),也有大量冗余(如你确认 Accept 的操作记录、已完成的中间步骤)。
/compact 会分析整个对话,保留关键信息和重要决策,丢弃冗余的中间过程。你可以通过附加提示来引导压缩方向:
/compact 只保留性能优化和数据库查询相关的对话内容,丢弃所有与 UI 样式相关的讨论
/compact是自动触发的:如果你在配置中开启了autoCompact: true(默认开启),Claude Code 会在上下文接近上限时自动压缩。手动调用/compact的场景是你提前感知到上下文即将不够用,或者想在上一个大型任务完成后主动"瘦身"。
/context 显示当前对话的上下文消耗情况——已用 token 数、模型上下文窗口上限、已加载的文件列表等。在以下场景中非常有用:
- 长对话中想确认还剩多少"空间"
- 想确认某个文件是否已被加载到上下文中
- 排查"为什么 Claude 似乎忘记了我之前说的信息"——可能上下文已被自动压缩
19.1.2 模式切换
模式切换命令改变 Claude Code 的行为模式——从计划模式到快速模式,从切换思考深度到更换底层模型。
| 命令 | 说明 |
|---|---|
/plan | 进入计划模式:Claude 先输出执行计划,你确认后再动手实现 |
/fast | 切换 Fast Mode:缩短推理时间,适合简单任务 |
/thinking | 切换深度思考模式:Claude 在执行前输出详细推理过程 |
/model | 切换模型(Opus / Sonnet / Haiku / 自定义模型) |
/plan 的适用场景:大规模重构(涉及 5 个以上文件)、架构变更、不确定最佳方案的复杂问题。在 Plan 模式下,Claude 会先分析需求、提出方案、列出影响的文件和步骤——你审查通过后才开始执行。关于 Plan 模式的详细用法见第 9 章:模式切换。
/thinking 切换深度思考模式。开启后,Claude 在执行每个操作前会输出它的推理过程——为什么选这个方案、有哪些替代方案被排除了、预期的风险是什么。这在以下场景中特别有用:
- 调试复杂的逻辑问题:你能看到 Claude 是如何排查的,不必盲目信任它的结论
- 学习新领域:通过阅读 Claude 的推理过程,你也能学到它的分析思路
- 代码审查:当 Claude 的建议涉及架构决策时,你需要理解它为什么这么建议
/model 是高频命令。日常任务用 Haiku(省钱、快速),复杂重构用 Opus(强推理)。切换方式有两种:
- 输入
/model,从弹出的列表中选择目标模型 - 在 VSCode 扩展中,通过
Cmd+K Cmd+S打开快捷键设置,为/model绑定一个快捷键(如Cmd+Shift+M),实现一键切换
关于各模型的详细对比和选择策略,见第 2 章:Agent 与模型。
19.1.3 Git 相关
这组命令让 Git 工作流与 Claude Code 的协作深度集成——从分析变更到创建提交、从推送代码到清理分支,一气呵成。
| 命令 | 说明 | 示例 |
|---|---|---|
/commit | 分析当前变更,生成 commit message 并提交 | — |
/commit-push-pr | 提交 + 推送 + 创建 Pull Request,一键完成 | — |
/clean_gone | 清理远程已删除的本地分支 | — |
/commit 是日常开发中使用频率最高的 Git 命令。Claude Code 会:
- 读取
git diff和git diff --staged - 分析变更内容、影响的文件、变更的性质(Bug 修复 / 新功能 / 重构)
- 生成符合约定的 commit message
- 展示给你审查,确认后执行提交
与手动
git commit的区别:手动提交你需要先git diff审查自己改了什么,然后回忆做了哪些事,最后写一段描述。/commit把这个流程压缩成一条命令——Claude 自己最清楚它改了哪些文件、为什么改、每个改动之间的关系。它生成的 commit message 通常比你手动写的更准确、更全面。
/commit-push-pr 是 /commit 的增强版,适合标准化的 PR 流程:
- 分析变更 → 生成 commit → 提交
- 推送到远程分支
- 自动创建 Pull Request(如果项目配置了 GitHub CLI)
- 在 PR 描述中总结本次变更的要点
在同一次对话中完成了功能开发、Bug 修复后,用这条命令一步到位。相关 Skill(commit-commands:commit、commit-commands:commit-push-pr)详见第 17 章:Skills 体系。
/clean_gone 清理本地那些远程已经删除但本地还留有痕迹的分支(git branch -vv 显示 [gone] 标记的分支)。在频繁使用 feature 分支的团队中,这个命令可以避免本地分支列表越来越长。
19.1.4 任务管理
任务管理命令帮助你组织和跟踪 Claude Code 的工作进度。
| 命令 | 说明 |
|---|---|
/init | 分析当前项目,生成 CLAUDE.md 文件 |
/review | 对当前分支进行全面的代码审查 |
/security-review | 安全审查当前分支的变更 |
/todo | 查看当前任务的进度和待办项 |
/loop | 以固定间隔重复执行指定命令 |
/tasks | 查看后台运行的任务列表 |
/init 是项目初始化的关键一步。在新项目中执行 /init,Claude Code 会自动:
- 分析项目结构、技术栈、构建工具
- 识别关键目录和文件的作用
- 生成
CLAUDE.md初稿(包含 Commands、Architecture、Code Style 等章节) - 你可以在此基础上精炼和补充
关于 CLAUDE.md 的编写规范和最佳实践,详见第 12 章:CLAUDE.md。
/review 和 /security-review 是代码质量的守门员。前者关注代码的正确性、可维护性、性能;后者专注于安全漏洞(SQL 注入、XSS、不安全的加密等)。建议在以下时机使用:
- 完成一个 feature 分支后,合并前做 code review
- PR 提交前,自我审查一遍
- 修改了涉及安全的代码(认证、授权、加密、数据库查询)后,做 security review
/loop 是自动化利器。语法为 /loop <间隔> <命令>,如:
/loop 5m /status # 每 5 分钟检查一次状态
/loop 10m /context # 每 10 分钟查看上下文用量适用场景:监控 CI 构建状态、定时检查日志、周期性任务巡检。
/tasks 查看所有通过 /loop 启动的后台任务,以及它们的状态(运行中 / 已完成 / 出错)。
19.1.5 其他辅助命令
| 命令 | 说明 |
|---|---|
/help | 显示帮助信息和可用命令列表 |
/doctor | 诊断 Claude Code 环境问题(网络、认证、配置) |
/status | 显示当前会话状态(模型、模式、上下文用量) |
/login | 重新登录 / 切换账号 |
/logout | 登出当前账号 |
/doctor 是第一道排查工具。当你遇到以下问题时,先跑一遍 /doctor:
- Claude Code 无法连接到模型
- 命令执行失败但没有明确错误提示
- 配置修改后不生效
/doctor 会逐项检查:网络连通性、认证状态、配置文件语法、Node.js 版本、Git 版本等,并给出修复建议。很多时候,/doctor 的检查结果本身就指出了你在排查 20 分钟后才能发现的根因。
/status 提供当前会话的快照视图——用的哪个模型、什么权限模式、上下文用了多少、在哪个 Git 分支上。在以下场景中很方便:
- 多个项目之间切换,需要确认当前环境
- 长对话中途想确认"我这个对话用的到底是什么模型?"
- 向同事求助时提供会话状态信息
19.1.6 命令使用原则
在使用这些斜杠命令时,有几个值得注意的原则:
不需要记住所有命令:输入
/后弹出的补全菜单就是最全的参考手册。记住你每天用的那 5-6 个(/clear、/commit、/review、/model、/context、/compact),其余的随用随查。命令是对话的一部分:斜杠命令可以在消息中的任何位置使用,不需要单独发送。例如:
先 /clear 清空对话,然后帮我分析 src/utils/ 下的代码结构结合自然语言使用:斜杠命令是"快捷方式",不是"替代品"。用
/model opus切换到强模型,然后用自然语言描述你的需求——两条指令之间没有必然界限。/菜单会动态变化:随着你安装的插件和 Skills 不同,/命令列表会增长。社区插件和自定义 Skill 也会注册自己的斜杠命令。
19.2 自定义斜杠命令
除了内置的斜杠命令,Claude Code 还支持你创建自己的斜杠命令。自定义命令的本质是给一段常用指令或工作流起一个名字——之后输入这个名字就能触发对应的操作。
19.2.1 定义自定义命令
自定义命令通过 ~/.claude/settings.json 或 .claude/settings.json 中的 customCommands 字段定义:
{
"customCommands": [
{
"name": "deploy",
"description": "构建并部署到 staging 环境",
"prompt": "运行 pnpm build,然后将 dist/ 目录部署到 staging 服务器。如果构建失败,分析错误并修复后再重试。"
},
{
"name": "explain-bug",
"description": "分析一个 Bug 的根因",
"prompt": "请系统性地分析以下 Bug:先复述我对 Bug 的描述,然后提出 3-5 个可能的根因假设(按可能性排序),最后针对最可能的假设给出修复方案。在分析过程中,使用 Read 工具仔细阅读相关代码,不要凭记忆猜测。"
}
]
}每个自定义命令包含三个字段:
| 字段 | 说明 | 必填 |
|---|---|---|
name | 命令名称(不含 /),使用时输入 /name | 是 |
description | 命令说明,在 / 命令补全菜单中显示 | 是 |
prompt | 触发命令后发送给 Claude 的完整提示词 | 是 |
定义完成后,重启 Claude Code 会话(/clear 或新开会话),新的命令就会出现在 / 菜单中。
19.2.2 参数传递
自定义命令支持在运行时传递参数。在 prompt 中使用 $ARGUMENTS 占位符来接收用户在命令后输入的参数:
{
"customCommands": [
{
"name": "analyze",
"description": "深度分析指定文件或目录",
"prompt": "请对 $ARGUMENTS 进行深度分析:总结其功能、评估其代码质量、指出潜在问题和改进建议。先通读所有相关代码,再给出分析结论。"
},
{
"name": "translate-comments",
"description": "将代码中的注释翻译为指定语言",
"prompt": "将 $ARGUMENTS 中所有代码注释翻译为英文,保持代码逻辑完全不变,只翻译注释部分。回答时给出修改后的完整文件内容。"
}
]
}使用方式:
/analyze src/utils/auth.ts
/translate-comments src/components/Login.vue$ARGUMENTS 会被替换为用户在命令后输入的所有内容。你也可以使用 $SELECTED_TEXT 来引用当前在编辑器中选中的代码——这对于右键触发或选中后执行的命令非常有用。
19.2.3 自定义命令的实用场景
以下是从社区收集的、经过验证的自定义命令示例:
场景 1:代码审查工作流
{
"name": "code-review-self",
"description": "自我代码审查当前分支变更",
"prompt": "请对当前分支相对于 main 的所有变更进行代码审查。关注点:1) 逻辑正确性——是否有边界条件遗漏;2) 安全性——是否有注入风险、权限问题;3) 性能——是否有不必要的循环、冗余的查询;4) 可维护性——命名是否清晰、函数是否过长。对每个问题给出严重程度(高/中/低)和修复建议。"
}场景 2:重构检查清单
{
"name": "refactor-check",
"description": "重构前检查清单",
"prompt": "在开始重构 $ARGUMENTS 之前,请执行以下检查:1) 列出所有引用该模块的文件;2) 确认测试覆盖率,如果覆盖率不足 80%,先建议补充测试;3) 识别潜在的破坏性变更点——哪些外部接口会受影响;4) 输出重构步骤建议。在完成这些检查后,等待我的确认再开始实际修改。"
}场景 3:技术文档生成
{
"name": "docgen",
"description": "为指定模块生成技术文档",
"prompt": "请为 $ARGUMENTS 生成一份技术文档,包含以下章节:1) 概述——该模块解决什么问题;2) 核心概念——用简单的语言解释关键设计;3) API 参考——列出主要的函数/类及其参数和返回值;4) 使用示例——提供 2-3 个实际使用场景的代码示例;5) 注意事项——使用中的常见陷阱和限制。使用中文编写,代码示例保留英文。"
}场景 4:PR 描述生成
{
"name": "pr-desc",
"description": "为当前分支生成 PR 描述",
"prompt": "请基于当前分支相对于 main 的变更,生成一份 PR 描述。格式:1) 变更概述(一句话);2) 变更动机(为什么要做这个改动);3) 主要变更(按文件或模块列出,每项不超过两行);4) 测试说明(如何验证变更正确);5) 截图或日志(如果有 UI 变更或命令输出)。"
}19.2.4 团队共享自定义命令
自定义命令可以放在项目配置(.claude/settings.json)中,提交到 Git 后团队成员自动获得:
// .claude/settings.json(提交到 Git)
{
"customCommands": [
{
"name": "team-lint",
"description": "运行团队统一的代码检查流程",
"prompt": "请依次执行以下检查:1) pnpm lint 检查代码风格;2) pnpm typecheck 检查类型;3) pnpm test 运行测试。如果任何一步失败,分析失败原因并尝试修复。修复后重新运行检查,直到全部通过。"
},
{
"name": "team-deploy",
"description": "执行团队部署流程",
"prompt": "请确认当前在 main 分支且工作区干净。然后依次:1) pnpm build 构建;2) 检查构建产物是否正常;3) 执行 make deploy 部署。如果构建失败,停止流程并报告错误。"
}
]
}团队共享自定义命令的设计原则:
- 不硬编码密钥和路径:团队共享的命令中不要包含 API 密钥、服务器地址等敏感信息——这些用环境变量代替
- 使用团队统一的工具链:
pnpm lint、pnpm typecheck等——确保所有成员的构建工具链一致 - 提供清晰的描述:团队成员在
/菜单中看到这条命令时,描述应该让他们立刻明白该命令做什么、什么时候用 - 运行前检查前置条件:在命令中加上前置条件检查(如"确认当前在正确分支"、"确认工作区干净"),防止误操作
19.2.5 自定义命令 vs 自然语言对话
一个常见的问题是:"为什么要把 prompt 封装成命令?我每次直接对 Claude 说不是更灵活吗?"
封装成命令的价值在于:
一致性:团队所有人用
/code-review-self做的代码审查,遵循相同的标准和质量要求。你每次口头说"帮我审查一下代码"——Claude 的理解和执行深度可能不一样。效率:你可以为一类高频任务设计最精确的 prompt,反复打磨得到最好的效果,然后固化为命令。这比每次都重新描述需求要快得多,也可靠得多。
可发现性:团队成员在
/菜单中看到/team-lint,立刻知道有这么一个统一的流程。如果没有人封装成命令,新成员可能根本不知道"应该在提交前运行 pnpm lint"这个团队约定。组合能力:自定义命令可以在
/loop中使用(/loop 30m /team-lint),也可以在其他命令的 prompt 中调用。封装使你的工作流可组合、可编排。
原则:高频重复的、需要一致性的、涉及团队规范的——封装成命令;一次性的、需要灵活调整的——用自然语言对话。
19.3 键盘快捷键体系
斜杠命令告诉 Claude Code 做什么,键盘快捷键让你用最快的速度触发操作。在 VSCode 扩展中,Claude Code 提供了一套完整的快捷键体系,覆盖了从打开面板、发送消息、审查代码到接受/拒绝变更的全流程。
19.3.1 完整快捷键一览
| 操作 | Mac | Windows/Linux | 使用频率 |
|---|---|---|---|
| 打开/聚焦侧边栏 | Cmd+Shift+L | Ctrl+Shift+L | 极高 |
| 内联编辑 | Cmd+Shift+I | Ctrl+Shift+I | 高 |
| 提交新消息 | Enter | Enter | 极高 |
| 换行(不提交) | Shift+Enter | Shift+Enter | 高 |
| 中断 AI 响应 | Ctrl+C | Ctrl+C | 中 |
| 打开快捷键设置 | Cmd+K Cmd+S | Ctrl+K Ctrl+S | 低 |
| 全屏侧边栏 | Ctrl+Shift+J | Ctrl+Shift+J | 中 |
| 选中代码 → 问 Claude | Cmd+I | Ctrl+I | 高 |
| 审批 Diff(接受) | Cmd+Enter | Ctrl+Enter | 高 |
| 拒绝变更 | Cmd+Delete | Ctrl+Delete | 高 |
| 切换主题 | Cmd+K Cmd+T | Ctrl+K Ctrl+T | 低 |
| 打开设置 | Cmd+, | Ctrl+, | 低 |
| 快速打开 Claude Code | Cmd+Esc | Ctrl+Esc | 中 |
| 选中代码后上下文菜单 | Cmd+K | Ctrl+K | 中 |
| 接受内联编辑建议 | Tab | Tab | 高 |
| 拒绝内联编辑/关闭面板 | Escape | Escape | 高 |
19.3.2 高频操作详解
Cmd+Shift+L / Ctrl+Shift+L — 打开/聚焦侧边栏
这是你每天按得最多的快捷键。第一次按时打开侧边栏对话面板,如果面板已打开则将焦点切换到输入框。Mac 用户可以这样记忆:"L" 代表 "Language"(对话语言)或 "LLM"。
实操技巧:
- 正在改代码 →
Cmd+Shift+L聚焦到对话面板 → 输入指令 →Enter发送 → 等待 Claude 操作 - Claude 改完代码后 → 点击编辑器区域(或再按
Cmd+Shift+L切换焦点)→ 用Cmd+Enter/Cmd+Delete逐文件审查 Diff
Cmd+Shift+I / Ctrl+Shift+I — 内联编辑
在当前光标位置打开一个简洁的输入框,输入的指令直接在代码旁边得到结果。"I" 代表 "Inline"。与侧边栏对话的区别:
| 维度 | 侧边栏 (Cmd+Shift+L) | 内联 (Cmd+Shift+I) |
|---|---|---|
| 适用场景 | 多轮对话、复杂任务、需要查看 Diff | 单次指令、光标处快速修改 |
| 结果展示 | 侧边栏 Diff 视图(双栏对比) | 编辑器内的灰色预览(原地显示) |
| 接受的按键 | Cmd+Enter / 工具栏按钮 | Tab |
| 断点续聊 | 支持,对话历史保留 | 不支持,一条指令一次输出 |
使用建议:当你有一个明确、单一的需求(如"把这个数组操作改成用 reduce"、"为此函数添加 JSDoc 注释"),用内联编辑更快——结果直接出现在代码旁边,不需要切到侧边栏。
Cmd+Enter / Ctrl+Enter 和 Cmd+Delete / Ctrl+Delete — 审查 Diff
这是 Claude Code VSCode 扩展的核心交互。当 Claude 完成代码修改后,侧边栏会以双栏 Diff 形式展示每个文件的变更:
Cmd+Enter:接受当前文件的所有变更(Accept)Cmd+Delete:拒绝当前文件的所有变更(Reject)
逐文件审查的节奏是:切换到 Diff 视图 → 快速扫一遍变更 → Cmd+Enter(没问题)或 Cmd+Delete(不符合预期)。这个流程一天要经历几十次,让这两个快捷键成为肌肉记忆至关重要。
Cmd+I / Ctrl+I — 选中代码直接问 Claude
在编辑器中选中一段代码,按 Cmd+I,Claude Code 自动将选中代码作为上下文弹出提问框。"I" 代表 "Inquire" 或 "Inspect"。等价于:选中 → 右键 → "Ask Claude"。
实操技巧:
- 看到一段不理解的代码 → 选中 →
Cmd+I→ 输入 "这段代码在做什么?" →Enter - 发现一个潜在 Bug → 选中 →
Cmd+I→ 输入 "这里有什么问题?" →Enter - 想优化一段代码 → 选中 →
Cmd+I→ 输入 "怎么优化这段逻辑?" →Enter
Enter / Shift+Enter — 发送与换行
默认行为:Enter 发送消息,Shift+Enter 换行。如果你经常需要输入多行指令(如粘帖一段代码要求 Claude 修改),强烈建议在 VSCode 设置中开启:
{
"claudeCode.useCtrlEnterToSend": true
}开启后:Enter → 换行(和其他所有文本编辑器一致),Ctrl+Enter → 发送。适应时间约一小时,但之后能防止无数次误发送——当你贴了一段 20 行的代码,结果因为忘记按 Shift 而发送了一条不完整的消息。
Ctrl+C — 中断 AI 响应
当 Claude 正在执行操作(如搜索文件、运行命令、生成代码)时,按 Ctrl+C 可以中断它。适用场景:
- Claude 误解了你的意思,正在做错误的事
- 你想调整指令,不需要它继续当前操作
- Claude 陷入了循环(不断尝试修复但反复失败)
⚠️ 注意:Mac 和 Windows 上都是
Ctrl+C,不是Cmd+C。这是终端中断信号的标准按键,在所有平台保持一致。Cmd+C在 Mac 上是复制。
19.3.3 快捷键记忆方法
面对十几个快捷键,一开始很难全部记住。以下是按使用频率和场景的记忆策略:
第一批(前三天掌握):
Cmd+Shift+L— 打开面板(每天 50 次以上)Enter/Shift+Enter— 发送与换行Cmd+Enter/Cmd+Delete— 接受与拒绝 DiffTab/Escape— 接受与拒绝内联编辑
第二批(第一周掌握):
Cmd+Shift+I— 内联编辑Cmd+I— 选中代码后提问Ctrl+C— 中断操作
第三批(有需要时再查):
Ctrl+Shift+J— 全屏侧边栏(处理复杂 Diff 时有用)Cmd+K Cmd+S— 打开快捷键设置Cmd+K Cmd+T— 切换主题
你也可以在 VSCode 中随时按 Cmd+K Cmd+S,搜索 "Claude Code" 查看完整列表——这是活文档,永远是最新的。
19.4 自定义 Keybindings
默认快捷键覆盖了最常用的操作,但你的使用习惯、键盘布局、触手可及的按键组合是独特的。自定义 Keybindings 让你把 Claude Code 的快捷键调整到与你的肌肉记忆完全匹配。
19.4.1 VSCode 中的快捷键自定义
打开 VSCode 快捷键设置:Cmd+K Cmd+S(Mac)/ Ctrl+K Ctrl+S(Windows/Linux)。在搜索框中输入 "Claude Code",你会看到所有可绑定的命令。
点击命令左侧的 + 号,按下你想要的按键组合,即可覆盖默认绑定。或者点击铅笔图标编辑已有的绑定。
自定义的快捷键保存在 VSCode 的 keybindings.json 文件中(通过命令面板 Preferences: Open Keyboard Shortcuts (JSON) 打开)。
19.4.2 keybindings.json 格式
[
{
"key": "cmd+shift+r",
"command": "claude-code.reviewSelection"
},
{
"key": "cmd+shift+e",
"command": "claude-code.explainSelection"
},
{
"key": "cmd+shift+a",
"command": "claude-code.acceptAllDiffs",
"when": "claudeCode.diffViewActive"
},
{
"key": "cmd+shift+d",
"command": "claude-code.rejectAllDiffs",
"when": "claudeCode.diffViewActive"
},
{
"key": "cmd+shift+m",
"command": "claude-code.switchModel"
},
{
"key": "cmd+shift+n",
"command": "claude-code.newSession"
}
]每条绑定支持三个字段:
| 字段 | 说明 | 必填 |
|---|---|---|
key | 按键组合,格式为 修饰键+按键 | 是 |
command | Claude Code 的命令标识符 | 是 |
when | 条件表达式,仅在满足条件时生效 | 否 |
19.4.3 社区推荐的额外绑定
以下绑定来自社区用户的反馈,覆盖了常见的"默认快捷键不够用"的场景:
代码审阅增强:
[
{
"key": "cmd+shift+r",
"command": "claude-code.reviewSelection",
"when": "editorHasSelection"
},
{
"key": "cmd+shift+e",
"command": "claude-code.explainSelection",
"when": "editorHasSelection"
},
{
"key": "cmd+shift+f",
"command": "claude-code.fixSelection",
"when": "editorHasSelection"
}
]这三条绑定让你选中代码后一键执行审查(Review)、解释(Explain)、修复(Fix),不需要通过右键菜单逐项选择。它们分别对应右键菜单中的 "Ask Claude" 的三个变体。
Diff 批量操作:
[
{
"key": "cmd+shift+a",
"command": "claude-code.acceptAllDiffs",
"when": "claudeCode.diffViewActive"
},
{
"key": "cmd+shift+d",
"command": "claude-code.rejectAllDiffs",
"when": "claudeCode.diffViewActive"
}
]当 Claude 修改了多个文件,你快速扫了一遍觉得没问题时,Cmd+Shift+A 一键接受所有变更——比逐文件按 8 次 Cmd+Enter 快得多。当然,这要求你对 Claude 的输出有足够的信任。
会话管理:
[
{
"key": "cmd+shift+n",
"command": "claude-code.newSession"
},
{
"key": "cmd+shift+h",
"command": "claude-code.showHistory"
}
]Cmd+Shift+N:一键创建新会话(前提:claudeCode.enableNewConversationShortcut已开启)Cmd+Shift+H:打开会话历史列表,切换到之前的对话
模型与模式切换:
[
{
"key": "cmd+shift+m",
"command": "claude-code.switchModel"
},
{
"key": "cmd+shift+t",
"command": "claude-code.toggleThinking"
},
{
"key": "cmd+shift+p",
"command": "claude-code.togglePlanMode"
}
]Cmd+Shift+M:快速切换模型——日常用 Haiku,遇到复杂任务时一键切 OpusCmd+Shift+T:开关思考模式——需要理解 Claude 的推理过程时开启Cmd+Shift+P:开关计划模式——大规模重构前开启
19.4.4 Chord 绑定(两键序列)
当单键组合不够用时,VSCode 支持 Chord 绑定——先按第一组键,再按第二组键来触发命令。这对保持操作的逻辑分组非常有用:
[
{
"key": "cmd+k cmd+r",
"command": "claude-code.reviewSelection"
},
{
"key": "cmd+k cmd+e",
"command": "claude-code.explainSelection"
},
{
"key": "cmd+k cmd+f",
"command": "claude-code.fixSelection"
},
{
"key": "cmd+k cmd+a",
"command": "claude-code.acceptAllDiffs"
},
{
"key": "cmd+k cmd+d",
"command": "claude-code.rejectAllDiffs"
}
]Chord 绑定的设计思路:以 Cmd+K 作为 "Claude Code 命令" 的前缀(K 代表 "K" of "Claude" 的反向字母联想,或者简单的首字母记忆),然后:
Cmd+K Cmd+R→ ReviewCmd+K Cmd+E→ ExplainCmd+K Cmd+F→ FixCmd+K Cmd+A→ Accept AllCmd+K Cmd+D→ Deny All (Reject)
Chord 绑定的优势在于:你只需要记得一个"前缀键"(Cmd+K),然后可以用逻辑关联的单个字母来区分操作,减少需要记住的独立按键组合数量。
19.4.5 可用的 Claude Code 命令标识符
以下是 VSCode 扩展中常见的 Claude Code 命令标识符(在 keybindings.json 中使用的 command 值):
| 命令标识符 | 对应操作 |
|---|---|
claude-code.start | 启动 Claude Code 侧边栏 |
claude-code.newSession | 创建新会话 |
claude-code.showHistory | 显示会话历史 |
claude-code.reviewSelection | 审查选中的代码 |
claude-code.explainSelection | 解释选中的代码 |
claude-code.fixSelection | 修复选中的代码 |
claude-code.acceptAllDiffs | 接受所有 Diff |
claude-code.rejectAllDiffs | 拒绝所有 Diff |
claude-code.acceptCurrentDiff | 接受当前文件 Diff |
claude-code.rejectCurrentDiff | 拒绝当前文件 Diff |
claude-code.switchModel | 切换模型 |
claude-code.toggleThinking | 开关思考模式 |
claude-code.togglePlanMode | 开关计划模式 |
claude-code.inlineEdit | 打开内联编辑 |
claude-code.openSidebar | 打开侧边栏 |
claude-code.interrupt | 中断当前操作 |
查找完整列表:在 VSCode 中按
Cmd+K Cmd+S,搜索 "Claude Code",实际可用的命令列表会在搜索结果中完整展示。扩展更新时可能增加新命令,以设置面板中的列表为准。
19.4.6 何时自定义 vs 使用默认
自定义快捷键需要投入时间——思考绑定什么键、适应新的肌肉记忆、在团队成员之间同步(如果你帮助别人用 Claude Code)。以下是决策框架:
保持默认的场景:
- 你没有与默认快捷键冲突的全局习惯(如系统级快捷键占用了某个组合)
- 你是 VSCode 新手,还在建立各种快捷键的记忆
- 你需要和团队成员保持一致的快捷键体系(方便协作和求助时描述操作)
应该自定义的场景:
- 默认快捷键与你已有的 VSCode 自定义键冲突
- 你从其他编辑器(Vim/Emacs/IntelliJ)迁移过来,有强烈的肌肉记忆需要满足
- 你的键盘布局特殊(如 HHKB、40% 键盘),默认组合不够方便
- 你频繁使用某个功能但默认没有快捷键(如"一键查看会话历史")
- 你想用 Chord 绑定来减少需要记忆的独立组合数量
原则:先使用默认快捷键至少一周,在此期间记录哪些操作的默认绑定让你感到别扭。一周后再针对性地修改——这时你改的每一条都是有实际需求的,不会陷入"为改而改"。
19.5 效率提升组合技
单独的快捷键让你操作快一点,但真正的效率飞跃来自于将多个操作组合成流畅的流程。以下是四个经过验证的高频组合工作流。
19.5.1 快速代码审查流程
这是日常开发中最高频的流程——Claude 完成代码修改后,快速审查 Diff 并决定接受与否。
流程:
1. Cmd+Shift+L → 打开/聚焦侧边栏
2. 查看 Diff 区第一个文件的变更(用鼠标滚动或键盘浏览)
3. Cmd+Enter → 没有问题,接受当前文件
Cmd+Delete → 有问题,拒绝当前文件
4. 重复步骤 2-3,直到所有文件审查完毕
5. 可选:Cmd+Shift+A → 如果全部确认没问题,一键接受所有提速技巧:
- 把
claude-code.acceptAllDiffs绑定到Cmd+Shift+A(见 19.4 节),遇到"改得完全符合预期"时可以一键接受 - 审查顺序:先看逻辑变更(核心的 if/else、循环、函数调用),再看样式和注释——逻辑问题比格式问题重要得多
- 如果文件较多(5 个以上),先扫一眼文件名列表,判断变更范围是否合理(比如只改登录模块却动了支付模块的文件——需要警觉)
19.5.2 代码理解工作流
遇到一段不熟悉的代码时,快速理解它在做什么:
流程:
1. 在编辑器中选择不理解的代码段
2. Cmd+I → 打开快速提问框
3. 输入 "这段代码在做什么?解释它的逻辑",按 Enter
4. 阅读 Claude 的解释
5. 追问(在同一对话中):"这里的 ${某个部分} 为什么要这样处理?"
6. 理解后,Escape 关闭内联框,回到代码编辑提速技巧:
- 如果是对整个文件的理解需求,不是选一段代码,而是按
Cmd+Shift+L打开侧边栏,输入 "解释这个文件的架构" - 理解 + 跳转到定义:选中某个函数名 →
Cmd+I→ "这个函数在哪里定义的?它的调用链是什么?" - 理解 + 优化:选中代码 →
Cmd+I→ "这个逻辑有性能问题吗?怎么优化?"
19.5.3 快速编辑工作流
对一个明确的、单点修改需求,用内联编辑最快:
流程:
1. 将光标放在目标位置
2. Cmd+Shift+I → 打开内联输入框
3. 输入修改指令(如 "把这个 for 循环改成用 map")
4. Enter 发送
5. Claude 生成修改,以灰色预览显示在光标处
6. Tab → 接受修改
Escape → 拒绝修改
7. 修改完成,继续编码内联编辑的适用场景:
| 适合内联 | 适合侧边栏 |
|---|---|
| 单函数/单块的局部修改 | 跨多个文件的大范围变更 |
| 添加注释、JSDoc | 架构重构、设计模式变更 |
| 格式化一段代码 | 需要多轮讨论的复杂任务 |
| 单行/几行的快速修复 | 需要先分析再执行的探索性任务 |
原则:如果指令可以在 20 字以内描述清楚、修改范围仅限于当前文件、你不需要看 Diff 就能判断改得对不对——用内联编辑。否则,用侧边栏。
19.5.4 多任务切换工作流
当你同时处理多个独立任务时(如一边开发新功能,一边修复一个紧急 Bug),用多会话管理来避免上下文污染:
流程:
1. Cmd+Shift+L → 打开侧边栏
2. Cmd+Shift+N → 创建新会话,命名为 "修复登录超时 Bug"
3. 完成 Bug 修复
4. Cmd+Shift+H → 打开会话历史
5. 切换到之前的 "开发导出功能" 会话 → 继续功能开发
6. 每个任务结束后 → 在会话中输入 /clear 清空,准备下一个任务多会话的最佳实践:
- 命名规则:给每个会话取有意义的名字——"重构 API 层"、"修复 #342 Bug"、"性能优化 MySQL 查询"。不要保持 "Session 1"、"Session 2" 这种默认名。
- 一个会话一个任务:如果会话同时涵盖三个不相关的需求,Claude 的上下文会被污染——它可能把任务 A 中的约定误用到任务 B 中。
- 周期性清理:每周或每完成一个大项目后,浏览会话历史,删除不再需要的旧会话。
19.5.5 终端到会话的衔接流程
在终端中发现一个错误,快速让 Claude 帮你分析:
流程:
1. VSCode 终端中执行命令 → 看到错误输出
2. 选中错误信息文本
3. Cmd+I → 打开快速提问框(选中文本自动带入上下文)
4. 输入 "这个错误的原因是什么?怎么修?" → Enter
5. Claude 分析错误并给出修复方案
6. 如果是修改代码的方案 → Tab 接受内联修复,或切换到侧边栏执行多文件修改这个流程的核心价值在于:从"发现错误"到"获得修复建议"之间,不需要复制错误信息、不需要打开浏览器搜索、不需要在 Slack 中问同事。选中 → 一键提问 → 得到针对性分析。几秒钟的事。
19.5.6 一天中的快捷键节奏
以典型的一天为例,展示快捷键如何融入开发流程:
| 时间段 | 活动 | 主要快捷键 |
|---|---|---|
| 09:00 | 开��� Claude Code,回顾昨天的工作 | Cmd+Shift+L / Cmd+Shift+H |
| 09:30 | 继续 Feature 开发 | Cmd+Shift+L(打开会话)+ Enter(发送指令) |
| 10:00 | Claude 改完代码,审查 Diff | Cmd+Enter(接受)/ Cmd+Delete(拒绝) |
| 10:30 | 看到一段不理解的代码 | 选中 → Cmd+I(提问)→ Escape(关闭) |
| 11:00 | 需要小修改 | Cmd+Shift+I(内联编辑)→ Tab(接受)→ Escape(关闭) |
| 11:30 | Claude 陷入了错误循环 | Ctrl+C(中断)→ 调整指令 → Enter(重试) |
| 14:00 | 切换到修复 Bug 的任务 | Cmd+Shift+N(新会话)→ 命名会话 |
| 15:00 | 提交代码 | 输入 /commit → Enter |
| 16:00 | 完成 Feature,PR 审查 | Cmd+Shift+L → /review |
| 17:00 | 查看当天所有后台任务 | 输入 /tasks → Enter |
这一天中,除了输入自然语言指令外,所有与 Claude Code 的交互都通过快捷键和斜杠命令完成——不会想到要去点鼠标、找菜单。这就是"思维不被操作打断"的状态。
19.5.7 组合技进阶:快捷键 + 斜杠命令 + 自然语言
最高效的使用方式是将三者在同一个工作流中无缝衔接:
场景:修复一个 Bug,同时需要理解代码、修改多个文件、提交
1. Cmd+I → 选中 Bug 相关代码 → "这段逻辑可能导致什么问题?" → 理解根因
2. Cmd+Shift+L → 打开侧边栏 → "在 src/api/auth.ts 中修复这个 token 过期处理逻辑,同时在 src/utils/retry.ts 中添加重试机制" → 多文件修改
3. Cmd+Enter / Cmd+Delete → 逐文件审查 Diff
4. /commit → 提交修复代码
5. /compact 只保留核心修改逻辑 → 压缩上下文,准备下一个任务整个流程中,快捷键触发操作(面板、审查),斜杠命令触发结构化任务(提交、压缩),自然语言描述具体的代码需求——三者的分工清晰且互补。
19.6 本章小结
本章是生态篇的最后一章,覆盖了 Claude Code 命令系统的完整图景——从内置斜杠命令的完整参考,到自定义命令的创建与团队共享,从键盘快捷键体系到自定义 Keybindings,再到将三者组合成高效工作流的方法。
核心知识回顾
斜杠命令是 Claude Code 的控制面板:从
/clear清空对话到/commit提交代码,从/review审查分支到/doctor诊断环境——不需要离开对话界面,用一条/命令即可触发结构化操作。自定义命令让重复任务固化:高频的、需要一致性的、涉及团队规范的操作——封装成自定义命令。一次打磨 prompt,无数次重复使用。团队成员在
/菜单中发现这些命令,自然学会了项目的开发规范。键盘快捷键是你的肌肉记忆:
Cmd+Shift+L(打开面板)、Cmd+Enter(接受 Diff)、Cmd+I(快速提问)、Cmd+Shift+I(内联编辑)——这些组合经过几天使用后会变成"不需要想"的反射动作。自定义 Keybindings 让快捷键符合你的习惯:通过 VSCode 的
keybindings.json,你可以为任何 Claude Code 命令绑定自己的按键组合。Community 推荐的额外绑定(Cmd+Shift+R审查、Cmd+Shift+E解释、Cmd+Shift+A全部接受)是很好的起点。效率来自组合:单独的快捷键让你快 10%,将快捷键、斜杠命令、自然语言组合成"快速审查"、"代码理解"、"多任务切换"等完整工作流,让你快 100%。真正的效率不在于按得有多快,而在于操作的流畅度——从"想要做什么"到"做完了"之间的步骤越少越好。
从生态篇到实战篇
本章是第四篇:生态篇的收官。回顾生态篇的内容线:
- 第 15 章:MCP 协议详解 — 通过标准协议扩展 Claude Code 的工具能力
- 第 16 章:插件系统 — 社区生态的能力市场
- 第 17 章:Skills 体系 — 可复用能力单元的设计与使用
- 第 18 章:Hooks 机制 — 事件驱动的自动化逻辑注入
- 第 19 章(本章):命令系统进阶 — 与 Claude Code 的交互语言
生态篇回答了"如何让 Claude Code 变得更强"——通过 MCP 连接外部系统、通过 Plugins 和 Skills 复用社区能力、通过 Hooks 注入自动化逻辑、通过命令系统让一切操作流畅高效。
掌握了这些,你已经拥有了 Claude Code 的完整技术栈:从核心能力(对话、编辑、终端、Git)到扩展生态(MCP、插件、Skills、Hooks),从配置体系(四层优先级、环境变量)到安全机制(权限规则、沙箱),再到日常交互层(斜杠命令、快捷键、Keybindings)。
下一步:第五篇:实战篇。技术栈已经完备,接下来进入真实的项目场景——理解一个新项目、在遗留代码中安全重构、用 Claude Code 加速日常开发——在实战中把这些知识融会贯通。
章节小结:本章是 Claude Code 日常交互层的完整指南。斜杠命令让你告诉 Claude Code 做什么,键盘快捷键让你用最快的速度操作,自定义命令让你封装团队的实践规范,组合工作流让你从"会用"跃迁到"高效"。记住最高频的 5 个快捷键(Cmd+Shift+L、Cmd+Enter、Cmd+Delete、Cmd+I、Cmd+Shift+I),封装 3-5 个团队自定义命令——这已经能覆盖你 90% 的日常交互。
下一章,我们将迈入实战篇——从一个真实的项目理解场景开始,将前面学到的所有知识投入实战。