← 返回教程库

自定义命令 Slash Command:把重复的活固化成一条指令

最后更新 2026-06-25
你将学到
  • 理解自定义命令的本质——把反复输入的长 prompt 固化成可复用的单条指令
  • 掌握在 Claude Code 和 Cursor 中创建自定义命令的目录结构和文件格式
  • 学会给命令传参数,让一条命令适配多种情况
  • 能独立排查命令不生效、找不到文件、参数未替换等常见问题

同一套指令你每天敲十遍——"帮我检查这段代码的边界条件、命名规范和潜在性能问题,用中文给结论"——第一遍觉得还行,第十遍只想把键盘摔了。把它固化成一条 /review,往后三个字搞定。

这就是自定义命令要解决的问题:把你反复对 AI 说的一套指令,变成一个你自己定义的 /命令,一键触发


自定义命令是什么,解决什么问题

自定义命令(Slash Command)的本质很简单:一个文本文件,里面写着你想让 AI 执行的完整指令。你给这个文件起个名字,比如 review.md,以后输入 /review,工具就把文件内容当成 prompt 发给 AI,走完整个流程。

它解决的核心矛盾是复用性

  • 不用每次重复长 prompt。你的 commit 规范是 Conventional Commits、用中文描述、不超过 50 字——以前每次提交前都要把这段说一遍,现在 /commit 就够了。
  • 团队标准落地到工具。你把代码审查标准写进 /review,团队里每个人跑出来的结果都遵循同一套标准,不再是"你检查你的风格,我检查我的风格"。
  • 流程不出错。多步骤的操作(比如"先分析 diff,再写 commit,再检查有没有调试代码残留")写进命令文件,不怕忘步骤。

自定义命令不是什么魔法,它就是把你手写 prompt 的过程提前做好并存档。理解这一点,你就不会对它有不切实际的期待,也不会低估它的价值。


怎么建一个自定义命令

Claude Code 的做法

Claude Code 的自定义命令(官方称 Slash Commands)放在项目根目录下的 .claude/commands/ 文件夹里,每个命令是一个 .md 文件,文件名就是命令名。

目录结构(以官方规范为准):

你的项目/
├── .claude/
│   └── commands/
│       ├── review.md       # 对应 /review
│       └── commit.md       # 对应 /commit
└── src/
    └── ...

文件里直接写 prompt 文本,Markdown 格式都可以识别。最简单的例子:

# review.md

帮我审查当前选中或刚才讨论的代码段。检查以下几点:

1. 边界条件:空值、负数、超长字符串有没有处理
2. 命名规范:变量和函数名是否清晰表达意图
3. 潜在性能问题:有没有在循环里做不必要的操作

用中文输出,每个问题给一句具体说明,不要只说"有问题"。

保存后,在 Claude Code 交互模式里输入 /review,它就把这段文字当 prompt 执行。

带参数的写法:用 $ARGUMENTS 占位符,Claude Code 会把你命令后面跟的文字替换进去。

# fix.md

帮我修复以下问题,不要改动其他逻辑:

$ARGUMENTS

修复后简要说明你改了什么,用一行中文。

用法:/fix 这个函数在传入空数组时会报 TypeError

Claude Code 会把 $ARGUMENTS 替换成你后面跟的描述,再把整段 prompt 发给 AI。


Cursor 的做法

Cursor 的自定义命令路径和格式与 Claude Code 类似,但细节以 Cursor 官方文档 为准——不同版本可能调整目录位置或文件格式,不要只信本文的截图。

一般来说,Cursor 支持在项目级别放自定义命令文件,触发方式是在 Composer 或 Chat 里输入 /命令名。参数传入方式各版本有差异,写命令文件时优先查当前版本的文档。

通用建议:无论用哪个工具,先建一个最简单的命令跑通,再加参数和复杂逻辑。把命令文件加进版本控制(.claude/commands/ 或对应目录),整个团队共享。


两个可直接抄用的命令实例

实例一:/review — 按你的标准审代码

把下面的内容保存到 .claude/commands/review.md

帮我审查以下代码(或当前对话里最近提到的代码片段)。

审查维度:
- **正确性**:逻辑有没有明显的 bug,边界条件(空、null、0、越界)有没有处理
- **可读性**:函数和变量命名是否清晰,复杂逻辑有没有注释
- **潜在风险**:有没有会在生产环境出问题的写法(比如同步 I/O、未捕获的异常、硬编码的配置)

输出格式:
- 先给一个一句话总结("整体没大问题"或"有 2 个需要修的地方")
- 然后按维度列具体发现,没问题的维度直接写"✓ 无问题"
- 如果有需要修的地方,给出修改建议(不需要直接改代码,给思路就行)

用中文输出。

为什么这样写:格式和输出约束写进命令,每次跑出来的结果结构一致,不用再说"用中文"、"分条列"之类的废话。


实例二:/commit — 按规范生成提交信息

把下面的内容保存到 .claude/commands/commit.md

帮我根据当前的 git diff(或刚才修改的内容)生成一条 commit 信息。

规范要求:
- 格式:`<type>(<scope>): <subject>`
- type 只用:feat / fix / refactor / docs / test / chore
- scope 填改动的模块名,不确定就留空
- subject 用中文,不超过 50 个字,动词开头("新增"、"修复"、"重构")
- 如果改动超过一个逻辑单元,在 subject 后面另起一段补充说明

先给出 commit 信息,再一句话解释你为什么选这个 type。
如果你判断这次改动不够干净(混了多个不相关的改动),也请说明。

用法:直接 /commit,Claude Code 会读当前 diff 然后生成规范的提交信息。要调整的话直接说"scope 改成 auth",它会重新生成。

这个命令的价值不是省几秒钟,而是强制你和 AI 对齐同一套规范——以后看 git log,commit 信息的质量会稳定很多。


自定义命令和 Skills 的区别

如果你看过 Skills 入门,可能会有疑问:命令和 Skills 有什么不同?

简单说:

维度 自定义命令(Slash Command) Skills
本质 一段固化的 prompt,触发后直接执行 教 AI 一套方法论或专业知识
用途 把"重复操作"变成一键触发 让 AI 在特定领域有更深的理解和判断力
输入 可以带参数($ARGUMENTS 通常不带参数,是背景知识
典型例子 /commit/review/deploy-check "如何评估一段代码的安全风险"、"什么是 Clean Code"

类比:自定义命令是菜谱(告诉你做什么、怎么做),Skills 是厨艺功底(让 AI 懂什么是好的烹饪)。两者配合用效果最好——命令定流程,Skills 提供专业判断。

关于 Skills 的详细用法,见 3.5 Skills:让 AI 持续复用你的经验


你应该看到什么:验证命令生效

建好命令文件后,打开 Claude Code,在 > 提示符后输入 /(只输入斜杠),工具应该弹出命令列表,你定义的命令名应该出现在里面。

如果列表里有 reviewcommit

  1. 输入 /review,它应该开始执行你文件里写的审查步骤,而不是问你"你想让我做什么"。
  2. 输入 /commit,它应该读取当前 diff,按规范生成提交信息。

验证带参数的命令:输入 /fix 这个函数在空数组时报错,输出的 prompt 里应该把你的描述嵌进去,而不是把 $ARGUMENTS 原样输出。

如果命令没出现在列表里:先检查文件路径对不对,再检查文件名有没有拼写错误(大小写敏感),然后退出 Claude Code 重新启动。


故障排查表

症状 可能原因 怎么查
输入 /命令名,提示"未找到命令" 文件放错目录,或文件名拼写有误 确认文件在 .claude/commands/ 下,文件名与命令名完全一致(区分大小写)
命令触发了,但 $ARGUMENTS 没被替换,原样输出 Claude Code 版本较旧,或参数写法有误 升级 Claude Code 到最新版;检查占位符是否就是 $ARGUMENTS(全大写)
命令执行了,但 AI 的行为和命令文件里写的不一样 当前会话有残留上下文干扰 /clear 清除上下文,再重新触发命令
命令文件内容有中文,保存后乱码 文件编码问题 确认文件用 UTF-8 保存(VS Code 右下角可以看到和切换编码)
Cursor 里找不到命令 Cursor 版本更新后目录或触发方式变了 直接查 Cursor 官方文档当前版本的 Custom Commands 章节

常见问题

Q:命令文件可以放在全局目录吗,不想每个项目都建一次?

Claude Code 支持用户级别的命令目录(一般在 ~/.claude/commands/),放在那里的命令在所有项目里都能用。项目级命令(.claude/commands/)只在这个项目里生效,适合团队共享标准。建议把通用的(如 /commit)放全局,项目特定的(如 /deploy-check 检查某个项目的发布清单)放项目级。以官方文档当前版本为准。

Q:命令文件里可以引用其他文件吗?

Claude Code 的命令文件里可以用 @文件路径 的方式引入项目里的文件内容,AI 会把引入的内容一起读进上下文。这个功能适合把"标准文档"嵌进命令——比如 /review 里引入你的 CODING_STANDARDS.md,让 AI 审查时对照你的团队规范,而不是自己猜。

Q:一条命令能不能触发多步骤操作?

可以。在命令文件里按顺序写多个步骤,AI 会依次执行。但步骤多了容易中途跑偏,建议复杂流程结合 subagent 自代理 的思路,把大任务拆成子任务而不是全塞进一个命令文件里。

Q:Cursor 和 Claude Code 的命令文件可以共用吗?

不能直接共用,两个工具的目录位置和触发机制不同,但内容可以复用——把 prompt 文字复制过去,调整格式适配对应工具即可。核心指令逻辑是一样的,搬过去改几行就能用。

Q:团队成员忘记用自定义命令怎么办?

把命令文件加进版本控制并在 README 里说一下,是最直接的做法。也可以在 CLAUDE.md 里写"提交代码前请跑 /commit 生成规范信息",Claude Code 每次启动都会读这个文件,有提示作用。


延伸阅读

自定义命令解决的是"重复操作固化"的问题,但 AI 编程工具的深度用法不止于此。


👉 看看我们的 AI 编程实战体系课,或逛 AI 编程教程大全 把基本功打扎实。

📄 来源 / 自校链接

本文为学习整理,关键步骤与代码请结合下列官方来源验证。

内容有错、看不懂、或想看下一期?告诉我们 →

本文为学习与落地整理,AI 工具与平台更新较快,关键步骤请结合官方最新资料验证。见免责声明