⚡ Claude Code Skills 实战:斜杠命令、快捷键与自动化
进阶第 2 篇 — 把 Claude Code 用成 IDE 一样顺手
🎯 这篇讲什么
CLAUDE.md 管记忆,这篇讲交互效率。学会斜杠命令、快捷键和 Hooks,你的操作速度能翻倍。
⌨️ 斜杠命令速查
在 Claude Code 交互会话中输入 / 开头触发。
会话管理
| 命令 | 作用 | 使用场景 |
|---|---|---|
/help | 列出所有命令 | 忘了命令时 |
/clear | 清空对话历史 | 话题切换,重新开始 |
/compact [focus] | 压缩上下文 | 对话太长,省 token 时 |
/context | 可视化上下文占用 | 担心超出窗口时 |
/cost | 查看 token 用量 | 关心花费时 |
/status | 版本和会话信息 | 排查问题时 |
/resume | 切换/恢复会话 | 回到之前的对话 |
代码开发
| 命令 | 作用 |
|---|---|
/review | 代码审查当前改动 |
/security-review | 安全审查 |
/plan | 先出计划再动手 |
/todos | 列出追踪中的任务 |
模型与配置
| 命令 | 作用 |
|---|---|
/model [name] | 切换模型(箭头键选) |
/effort | 调整思考深度 |
/init | 创建项目 CLAUDE.md |
/memory | 打开 CLAUDE.md 编辑 |
/permissions | 查看/修改权限 |
/mcp | 管理 MCP 服务器 |
/release-notes | 版本更新日志 |
💡 最常用的三个:/compact省 token、/cost看花费、/model换模型。
⌨️ 键盘快捷键
记住这 10 个就够了:
| 快捷键 | 作用 | 口诀 |
|---|---|---|
Ctrl+D | 退出 | 完事走人 |
Ctrl+C | 取消当前生成 | 别说了 |
Ctrl+R | 搜索历史命令 | 刚才说的啥 |
Ctrl+B | 后台运行任务 | 你先忙 |
Ctrl+O | 看 AI 思考过程 | 怎么想的 |
Shift+Tab | 切换权限模式 | 信不信任 |
Alt+P | 换模型 | 换人干活 |
Alt+T | 开关思考模式 | 多想/少想 |
\ + Enter | 多行输入换行 | 写长点 |
Ctrl+V | 粘贴图片 | 看图说话 |
🔣 输入前缀技巧
| 前缀 | 效果 | 例子 |
|---|---|---|
! | 直接执行 bash | !npm test 不等 AI,直接跑 |
@ | 引用文件/目录 | @./src/api/ 自动补全 |
# | 快速加记忆 | # 这个项目用 pnpm |
/ | 斜杠命令 | /compact focus on auth |
ultrathink | 最强思考 | 复杂问题时在末尾加这个词 |
用户: 这段代码有没有并发安全问题?ultrathink
↑ Claude 会用最深度的推理来分析
🪝 Hooks:让 Claude Code 自动化
Hooks 是事件触发器。发生某件事时自动执行操作。
8 种 Hook 类型
| Hook | 触发时机 | 典型用途 |
|---|---|---|
UserPromptSubmit | 你发消息前 | 输入验证 |
PreToolUse | 工具执行前 | 安全拦截 |
PostToolUse | 工具执行后 | 自动格式化 |
Notification | 需要你确认时 | 桌面通知 |
Stop | Claude 回复完 | 记录日志 |
SubagentStop | 子代理完成 | 汇总结果 |
PreCompact | 上下文压缩前 | 备份对话 |
SessionStart | 会话开始时 | 加载环境 |
实战配置(.claude/settings.json)
{
"hooks": {
"PostToolUse": [{
"matcher": "Write(*.py)",
"hooks": [{
"type": "command",
"command": "ruff check --fix $CLAUDE_FILE_PATHS"
}]
}],
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -qE 'rm -rf|git push.*--force'; then echo '危险操作已拦截!' && exit 2; fi"
}]
}],
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "git status --short"
}]
}]
}
}
效果:
ruff 格式化Hook 可用变量
| 变量 | 内容 |
|---|---|
$CLAUDE_PROJECT_DIR | 当前项目路径 |
$CLAUDE_FILE_PATHS | 被操作的文件列表 |
$CLAUDE_TOOL_INPUT | 工具参数 JSON |
🏷️ 自定义斜杠命令
创建 .claude/commands/ 目录,每个 .md 文件就是一个命令:
# .claude/commands/deploy.md
执行部署流程:
1. 运行全部测试
2. 构建 Docker 镜像
3. 推送到镜像仓库
4. 更新 $ARGUMENTS 环境(默认 staging)
使用:/deploy production
$ARGUMENTS是用户输入的内容。/deploy production→production填入。
📋 Skills:自动触发的操作指南
Skills 和 Slash Commands 的区别:
| Slash Commands | Skills | |
|---|---|---|
| 触发方式 | 手动 /命令 | 自然语言自动匹配 |
| 放在哪 | .claude/commands/ | .claude/skills/ |
| 适用场景 | 固定流程(部署、发布) | 知识指南(迁移规范、代码风格) |
# .claude/skills/database-migration.md
当用户要求创建或修改数据库迁移时:
1. 使用 Alembic 生成迁移文件
2. 每次创建 up 函数时必须同时写 down 函数
3. 迁移前先对本地测试数据库执行一遍
Claude 看到"帮我做个数据库迁移"会自动加载这份技能指南。
❓ 常见问题 (FAQ)
Q1: /compact 什么时候用?
对话超过 30 轮、/context 显示 >70% 占用时。压缩后 CLAUDE.md 和 skills 保留,临时对话内容被精炼。
Q2: Hooks 会不会影响性能?
PostToolUse 的 hook 每次写完文件就跑,如果 linter 很慢会拖慢体验。建议只对关键操作加 hook。
Q3: 自定义命令和 Skills 可以共享给团队吗?
可以。放在项目 .claude/commands/ 和 .claude/skills/ 里,Git 提交后全队可用。
Q4: ! 前缀执行的命令会经过 Hook 检查吗?
会。! 只是跳过 AI 直接执行,但 PreToolUse hook 仍然会触发。
Q5: 怎么知道当前会话占了多少上下文?
/context 会显示彩色网格,绿色安全,黄色注意,红色危险。
Q6: ultrathink 和 /effort max 有什么区别?
/effort max 设全局思考深度。ultrathink 在单次提问中触发最深推理,适用于特别复杂的问题。
⚠️ 实操避坑
| 坑 | 正确做法 |
|---|---|
| PreToolUse hook 写错了导致所有命令被拦截 | 先不加 hook 测试命令脚本,确认无误再配上 |
/compact 后忘记了之前的决策 | 压缩前用 /todos 记录待办事项 |
| Skills 文件写太泛 | 要写具体步骤和命令,不是"注意安全"这类废话 |
$ARGUMENTS 不知道怎么用 | 在命令 md 里写清楚默认值,如「默认 staging」 |
| Hook 的 command 路径写相对路径 | 用绝对路径或确保 Hook 在项目根目录执行 |
标签:#AI #ClaudeCode #进阶 #Commands #Hooks