7.16 /hooks - 管理钩子配置
第 7 章 · 斜杠命令指南 · 第2部分:命令参考
概述#
/hooks 命令用于管理工具事件的钩子配置。钩子允许你在特定事件发生时自动执行自定义脚本或命令。
基本语法#
bash复制/hooks [subcommand]
子命令#
| 子命令 | 描述 |
|---|---|
| 无参数 | 列出所有已配置的钩子 |
add | 添加新的钩子 |
edit | 编辑现有钩子 |
remove | 删除钩子 |
enable | 启用钩子 |
disable | 禁用钩子 |
功能说明#
列出钩子#
bash复制/hooks # 显示所有已配置的钩子及其状态
添加钩子#
bash复制/hooks add # 按照提示输入:# - 钩子名称# - 触发事件# - 执行命令# - 工作目录
删除钩子#
bash复制/hooks remove hook-name> # 删除指定的钩子
钩子事件#
Claude Code 支持以下钩子事件:
| 事件 | 描述 |
|---|---|
before-edit | 文件编辑前 |
after-edit | 文件编辑后 |
before-run | 命令执行前 |
after-run | 命令执行后 |
on-error | 错误发生时 |
on-success | 任务成功时 |
使用场景#
1. 代码格式化#
bash复制# 添加文件编辑后的格式化钩子/hooks add # 配置:# - 事件: after-edit# - 命令: prettier --write $FILE# - 作用: 每次编辑文件后自动格式化
2. 运行测试#
bash复制# 添加代码编辑后的测试钩子/hooks add # 配置:# - 事件: after-edit# - 命令: npm test# - 作用: 每次编辑代码后运行测试
3. 备份文件#
bash复制# 添加文件编辑前的备份钩子/hooks add # 配置:# - 事件: before-edit# - 命令: cp $FILE $FILE.backup# - 作用: 编辑前自动备份文件
4. 通知#
bash复制# 添加任务完成后的通知钩子/hooks add # 配置:# - 事件: on-success# - 命令: notify-send "Task completed"# - 作用: 任务完成后发送通知
钩子配置示例#
格式化钩子#
yaml复制name: format-code event: after-edit command: prettier --write $FILE enabled: true
测试钩子#
yaml复制name: run-tests event: after-edit command: npm test working-dir: ./tests enabled: true
备份钩子#
yaml复制name: backup-file event: before-edit command: cp $FILE $FILE.backup enabled: true
环境变量#
钩子命令可以使用以下环境变量:
| 变量 | 描述 |
|---|---|
$FILE | 被编辑的文件路径 |
$COMMAND | 执行的命令 |
$STATUS | 命令退出状态 |
$WORKING_DIR | 工作目录 |
注意事项#
- 钩子命令在工作目录中执行
- 钩子执行失败不会阻止主流程
- 可以禁用钩子而不删除
- 钩子配置保存在项目或用户级别
与其他命令的配合使用#
bash复制# 配置钩子,然后测试/hooks add# 编辑文件# 钩子自动执行
最佳实践#
- 合理使用:只在必要时使用钩子,避免过度自动化
- 错误处理:确保钩子命令有适当的错误处理
- 性能考虑:避免在钩子中执行耗时操作
- 测试钩子:添加钩子后,测试其行为是否符合预期
总结#
/hooks 命令是 Claude Code 中用于自动化工作流的重要工具。通过使用此命令,你可以:
- 在特定事件发生时自动执行命令
- 自动化重复性任务
- 实现自定义工作流
- 提高工作效率
合理使用 /hooks 命令可以帮助你创建更高效的开发工作流。