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工作目录

注意事项#

  1. 钩子命令在工作目录中执行
  2. 钩子执行失败不会阻止主流程
  3. 可以禁用钩子而不删除
  4. 钩子配置保存在项目或用户级别

与其他命令的配合使用#

bash
复制
# 配置钩子,然后测试/hooks add# 编辑文件# 钩子自动执行

最佳实践#

  1. 合理使用:只在必要时使用钩子,避免过度自动化
  2. 错误处理:确保钩子命令有适当的错误处理
  3. 性能考虑:避免在钩子中执行耗时操作
  4. 测试钩子:添加钩子后,测试其行为是否符合预期

总结#

/hooks 命令是 Claude Code 中用于自动化工作流的重要工具。通过使用此命令,你可以:

  • 在特定事件发生时自动执行命令
  • 自动化重复性任务
  • 实现自定义工作流
  • 提高工作效率

合理使用 /hooks 命令可以帮助你创建更高效的开发工作流。