Skip to content
Published at:

第 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(强推理)。切换方式有两种:

  1. 输入 /model,从弹出的列表中选择目标模型
  2. 在 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 会:

  1. 读取 git diffgit diff --staged
  2. 分析变更内容、影响的文件、变更的性质(Bug 修复 / 新功能 / 重构)
  3. 生成符合约定的 commit message
  4. 展示给你审查,确认后执行提交

与手动 git commit 的区别:手动提交你需要先 git diff 审查自己改了什么,然后回忆做了哪些事,最后写一段描述。/commit 把这个流程压缩成一条命令——Claude 自己最清楚它改了哪些文件、为什么改、每个改动之间的关系。它生成的 commit message 通常比你手动写的更准确、更全面。

/commit-push-pr/commit 的增强版,适合标准化的 PR 流程:

  1. 分析变更 → 生成 commit → 提交
  2. 推送到远程分支
  3. 自动创建 Pull Request(如果项目配置了 GitHub CLI)
  4. 在 PR 描述中总结本次变更的要点

在同一次对话中完成了功能开发、Bug 修复后,用这条命令一步到位。相关 Skill(commit-commands:commitcommit-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 会自动:

  1. 分析项目结构、技术栈、构建工具
  2. 识别关键目录和文件的作用
  3. 生成 CLAUDE.md 初稿(包含 Commands、Architecture、Code Style 等章节)
  4. 你可以在此基础上精炼和补充

关于 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 命令使用原则

在使用这些斜杠命令时,有几个值得注意的原则:

  1. 不需要记住所有命令:输入 / 后弹出的补全菜单就是最全的参考手册。记住你每天用的那 5-6 个(/clear/commit/review/model/context/compact),其余的随用随查。

  2. 命令是对话的一部分:斜杠命令可以在消息中的任何位置使用,不需要单独发送。例如:

    先 /clear 清空对话,然后帮我分析 src/utils/ 下的代码结构
  3. 结合自然语言使用:斜杠命令是"快捷方式",不是"替代品"。用 /model opus 切换到强模型,然后用自然语言描述你的需求——两条指令之间没有必然界限。

  4. / 菜单会动态变化:随着你安装的插件和 Skills 不同,/ 命令列表会增长。社区插件和自定义 Skill 也会注册自己的斜杠命令。

19.2 自定义斜杠命令

除了内置的斜杠命令,Claude Code 还支持你创建自己的斜杠命令。自定义命令的本质是给一段常用指令或工作流起一个名字——之后输入这个名字就能触发对应的操作。

19.2.1 定义自定义命令

自定义命令通过 ~/.claude/settings.json.claude/settings.json 中的 customCommands 字段定义:

json
{
  "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 占位符来接收用户在命令后输入的参数:

json
{
  "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:代码审查工作流

json
{
  "name": "code-review-self",
  "description": "自我代码审查当前分支变更",
  "prompt": "请对当前分支相对于 main 的所有变更进行代码审查。关注点:1) 逻辑正确性——是否有边界条件遗漏;2) 安全性——是否有注入风险、权限问题;3) 性能——是否有不必要的循环、冗余的查询;4) 可维护性——命名是否清晰、函数是否过长。对每个问题给出严重程度(高/中/低)和修复建议。"
}

场景 2:重构检查清单

json
{
  "name": "refactor-check",
  "description": "重构前检查清单",
  "prompt": "在开始重构 $ARGUMENTS 之前,请执行以下检查:1) 列出所有引用该模块的文件;2) 确认测试覆盖率,如果覆盖率不足 80%,先建议补充测试;3) 识别潜在的破坏性变更点——哪些外部接口会受影响;4) 输出重构步骤建议。在完成这些检查后,等待我的确认再开始实际修改。"
}

场景 3:技术文档生成

json
{
  "name": "docgen",
  "description": "为指定模块生成技术文档",
  "prompt": "请为 $ARGUMENTS 生成一份技术文档,包含以下章节:1) 概述——该模块解决什么问题;2) 核心概念——用简单的语言解释关键设计;3) API 参考——列出主要的函数/类及其参数和返回值;4) 使用示例——提供 2-3 个实际使用场景的代码示例;5) 注意事项——使用中的常见陷阱和限制。使用中文编写,代码示例保留英文。"
}

场景 4:PR 描述生成

json
{
  "name": "pr-desc",
  "description": "为当前分支生成 PR 描述",
  "prompt": "请基于当前分支相对于 main 的变更,生成一份 PR 描述。格式:1) 变更概述(一句话);2) 变更动机(为什么要做这个改动);3) 主要变更(按文件或模块列出,每项不超过两行);4) 测试说明(如何验证变更正确);5) 截图或日志(如果有 UI 变更或命令输出)。"
}

19.2.4 团队共享自定义命令

自定义命令可以放在项目配置(.claude/settings.json)中,提交到 Git 后团队成员自动获得:

json
// .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 lintpnpm typecheck 等——确保所有成员的构建工具链一致
  • 提供清晰的描述:团队成员在 / 菜单中看到这条命令时,描述应该让他们立刻明白该命令做什么、什么时候用
  • 运行前检查前置条件:在命令中加上前置条件检查(如"确认当前在正确分支"、"确认工作区干净"),防止误操作

19.2.5 自定义命令 vs 自然语言对话

一个常见的问题是:"为什么要把 prompt 封装成命令?我每次直接对 Claude 说不是更灵活吗?"

封装成命令的价值在于:

  1. 一致性:团队所有人用 /code-review-self 做的代码审查,遵循相同的标准和质量要求。你每次口头说"帮我审查一下代码"——Claude 的理解和执行深度可能不一样。

  2. 效率:你可以为一类高频任务设计最精确的 prompt,反复打磨得到最好的效果,然后固化为命令。这比每次都重新描述需求要快得多,也可靠得多。

  3. 可发现性:团队成员在 / 菜单中看到 /team-lint,立刻知道有这么一个统一的流程。如果没有人封装成命令,新成员可能根本不知道"应该在提交前运行 pnpm lint"这个团队约定。

  4. 组合能力:自定义命令可以在 /loop 中使用(/loop 30m /team-lint),也可以在其他命令的 prompt 中调用。封装使你的工作流可组合、可编排。

原则:高频重复的、需要一致性的、涉及团队规范的——封装成命令;一次性的、需要灵活调整的——用自然语言对话。

19.3 键盘快捷键体系

斜杠命令告诉 Claude Code 做什么,键盘快捷键让你用最快的速度触发操作。在 VSCode 扩展中,Claude Code 提供了一套完整的快捷键体系,覆盖了从打开面板、发送消息、审查代码到接受/拒绝变更的全流程。

19.3.1 完整快捷键一览

操作MacWindows/Linux使用频率
打开/聚焦侧边栏Cmd+Shift+LCtrl+Shift+L极高
内联编辑Cmd+Shift+ICtrl+Shift+I
提交新消息EnterEnter极高
换行(不提交)Shift+EnterShift+Enter
中断 AI 响应Ctrl+CCtrl+C
打开快捷键设置Cmd+K Cmd+SCtrl+K Ctrl+S
全屏侧边栏Ctrl+Shift+JCtrl+Shift+J
选中代码 → 问 ClaudeCmd+ICtrl+I
审批 Diff(接受)Cmd+EnterCtrl+Enter
拒绝变更Cmd+DeleteCtrl+Delete
切换主题Cmd+K Cmd+TCtrl+K Ctrl+T
打开设置Cmd+,Ctrl+,
快速打开 Claude CodeCmd+EscCtrl+Esc
选中代码后上下文菜单Cmd+KCtrl+K
接受内联编辑建议TabTab
拒绝内联编辑/关闭面板EscapeEscape

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+EnterCmd+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 设置中开启:

json
{
  "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 — 接受与拒绝 Diff
  • Tab / 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 格式

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按键组合,格式为 修饰键+按键
commandClaude Code 的命令标识符
when条件表达式,仅在满足条件时生效

19.4.3 社区推荐的额外绑定

以下绑定来自社区用户的反馈,覆盖了常见的"默认快捷键不够用"的场景:

代码审阅增强

json
[
  {
    "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 批量操作

json
[
  {
    "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 的输出有足够的信任。

会话管理

json
[
  {
    "key": "cmd+shift+n",
    "command": "claude-code.newSession"
  },
  {
    "key": "cmd+shift+h",
    "command": "claude-code.showHistory"
  }
]
  • Cmd+Shift+N:一键创建新会话(前提:claudeCode.enableNewConversationShortcut 已开启)
  • Cmd+Shift+H:打开会话历史列表,切换到之前的对话

模型与模式切换

json
[
  {
    "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,遇到复杂任务时一键切 Opus
  • Cmd+Shift+T:开关思考模式——需要理解 Claude 的推理过程时开启
  • Cmd+Shift+P:开关计划模式——大规模重构前开启

19.4.4 Chord 绑定(两键序列)

当单键组合不够用时,VSCode 支持 Chord 绑定——先按第一组键,再按第二组键来触发命令。这对保持操作的逻辑分组非常有用:

json
[
  {
    "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 → Review
  • Cmd+K Cmd+E → Explain
  • Cmd+K Cmd+F → Fix
  • Cmd+K Cmd+A → Accept All
  • Cmd+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:00Claude 改完代码,审查 DiffCmd+Enter(接受)/ Cmd+Delete(拒绝)
10:30看到一段不理解的代码选中 → Cmd+I(提问)→ Escape(关闭)
11:00需要小修改Cmd+Shift+I(内联编辑)→ Tab(接受)→ Escape(关闭)
11:30Claude 陷入了错误循环Ctrl+C(中断)→ 调整指令 → Enter(重试)
14:00切换到修复 Bug 的任务Cmd+Shift+N(新会话)→ 命名会话
15:00提交代码输入 /commitEnter
16:00完成 Feature,PR 审查Cmd+Shift+L/review
17:00查看当天所有后台任务输入 /tasksEnter

这一天中,除了输入自然语言指令外,所有与 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,再到将三者组合成高效工作流的方法。

核心知识回顾

  1. 斜杠命令是 Claude Code 的控制面板:从 /clear 清空对话到 /commit 提交代码,从 /review 审查分支到 /doctor 诊断环境——不需要离开对话界面,用一条 / 命令即可触发结构化操作。

  2. 自定义命令让重复任务固化:高频的、需要一致性的、涉及团队规范的操作——封装成自定义命令。一次打磨 prompt,无数次重复使用。团队成员在 / 菜单中发现这些命令,自然学会了项目的开发规范。

  3. 键盘快捷键是你的肌肉记忆Cmd+Shift+L(打开面板)、Cmd+Enter(接受 Diff)、Cmd+I(快速提问)、Cmd+Shift+I(内联编辑)——这些组合经过几天使用后会变成"不需要想"的反射动作。

  4. 自定义 Keybindings 让快捷键符合你的习惯:通过 VSCode 的 keybindings.json,你可以为任何 Claude Code 命令绑定自己的按键组合。Community 推荐的额外绑定(Cmd+Shift+R 审查、Cmd+Shift+E 解释、Cmd+Shift+A 全部接受)是很好的起点。

  5. 效率来自组合:单独的快捷键让你快 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+LCmd+EnterCmd+DeleteCmd+ICmd+Shift+I),封装 3-5 个团队自定义命令——这已经能覆盖你 90% 的日常交互。

下一章,我们将迈入实战篇——从一个真实的项目理解场景开始,将前面学到的所有知识投入实战。