Files
everything-claude-code-zh/the-shortform-guide.md

16 KiB
Raw Blame History

Claude Code 全方位速查手册

页眉:Anthropic 黑客松获胜者 - Claude Code 提示与技巧


自 2 月份实验性推出以来,我一直是 Claude Code 的忠实用户。我与 @DRodriguezFX 合作,完全使用 Claude Code 开发了 zenith.chat,并赢得了 Anthropic x Forum Ventures 黑客松。

以下是我在 10 个月的日常使用后总结出的完整配置技能Skills、生命周期钩子Hooks、子智能体Subagents、模型上下文协议MCPs、插件Plugins以及真正行之有效的实践方案。


技能Skills与命令Commands

技能Skills类似于规则但被限定在特定的作用域和工作流中。当你需要执行特定工作流时它们是提示词Prompts的快捷方式。

在使用 Opus 4.5 进行长时间编码后,想要清理废弃代码和散落的 .md 文件?运行 /refactor-clean。需要测试?使用 /tdd/e2e/test-coverage。技能还可以包含代码映射Codemaps——这是一种让 Claude 快速导航代码库的方法而不会在探索过程中浪费上下文Context

终端显示链式命令 链式调用多个命令

命令Commands是通过斜杠命令Slash Commands执行的技能。它们在功能上有重叠但存储方式不同

  • 技能 (Skills): ~/.claude/skills/ - 更广泛的工作流定义
  • 命令 (Commands): ~/.claude/commands/ - 快速可执行的提示词
# 示例技能结构
~/.claude/skills/
  pmx-guidelines.md      # 项目特定模式
  coding-standards.md    # 语言最佳实践
  tdd-workflow/          # 包含 README.md 的多文件技能
  security-review/       # 基于清单的技能

生命周期钩子Hooks

生命周期钩子Hooks是基于触发器的自动化功能在特定事件发生时触发。与技能不同它们被限制在工具调用Tool Calls和生命周期事件中。

钩子类型:

  1. PreToolUse - 工具执行前(验证、提醒)
  2. PostToolUse - 工具执行后(格式化、反馈循环)
  3. UserPromptSubmit - 发送消息时
  4. Stop - Claude 完成响应时
  5. PreCompact - 上下文压缩前
  6. Notification - 权限请求

示例:在执行耗时命令前发送 tmux 提醒

{
  "PreToolUse": [
    {
      "matcher": "tool == \"Bash\" && tool_input.command matches \"(npm|pnpm|yarn|cargo|pytest)\"",
      "hooks": [
        {
          "type": "command",
          "command": "if [ -z \"$TMUX\" ]; then echo '[Hook] Consider tmux for session persistence' >&2; fi"
        }
      ]
    }
  ]
}

PostToolUse 钩子反馈 运行 PostToolUse 钩子时在 Claude Code 中获得的反馈示例

专家提示: 使用 hookify 插件可以通过对话方式创建钩子,而无需手动编写 JSON。运行 /hookify 并描述你的需求即可。


子智能体Subagents

子智能体Subagents是你的编排器主 Claude 实例)可以委派任务的进程,具有受限的作用域。它们可以在后台或前台运行,从而为主智能体释放上下文空间。

子智能体与技能配合得非常好——能够执行部分技能集的子智能体可以被委派任务并自主使用这些技能。它们还可以通过特定的工具权限进行沙箱化处理。

# 示例子智能体结构
~/.claude/agents/
  planner.md           # 功能实现规划
  architect.md         # 系统设计决策
  tdd-guide.md         # 测试驱动开发
  code-reviewer.md     # 质量/安全审查
  security-reviewer.md # 漏洞分析
  build-error-resolver.md
  e2e-runner.md
  refactor-cleaner.md

为每个子智能体配置允许的工具、MCP 和权限,以实现适当的作用域限定。


规则Rules与记忆Memory

你的 .rules 文件夹存放着 Claude 应该始终遵循的最佳实践 .md 文件。有两种方法:

  1. 单个 CLAUDE.md - 所有内容放在一个文件中(用户级或项目级)
  2. Rules 文件夹 - 按关注点分组的模块化 .md 文件
~/.claude/rules/
  security.md      # 禁止硬编码密钥,验证输入
  coding-style.md  # 不可变性,文件组织
  testing.md       # TDD 工作流80% 覆盖率
  git-workflow.md  # 提交格式PR 流程
  agents.md        # 何时委派给子智能体
  performance.md   # 模型选择,上下文管理

示例规则:

  • 代码库中严禁使用表情符号 (Emojis)
  • 前端避免使用紫色调
  • 部署前始终测试代码
  • 优先采用模块化代码而非超大文件
  • 严禁提交 console.log

模型上下文协议MCPs

模型上下文协议MCPs将 Claude 直接连接到外部服务。它不是 API 的替代品,而是围绕 API 的提示词驱动封装,允许在导航信息时具有更高的灵活性。

示例: Supabase MCP 让 Claude 能够拉取特定数据,直接在上游运行 SQL无需复制粘贴。数据库、部署平台等同理。

Supabase MCP 列出数据表 Supabase MCP 列出 public 模式下数据表的示例

Claude 内部的 Chrome 是一个内置的 MCP 插件,允许 Claude 自主控制浏览器——通过点击来查看功能运行情况。

关键点上下文窗口Context Window管理

对 MCP 要精挑细选。我将所有 MCP 保留在用户配置中,但禁用所有不使用的 MCP。导航至 /plugins 并向下滚动或运行 /mcp

/plugins 界面 使用 /plugins 导航至 MCP查看当前已安装的 MCP 及其状态

由于启用了过多工具,你在压缩前的 200k 上下文窗口可能实际上只剩 70k。性能会显著下降。

经验法则: 配置中保留 20-30 个 MCP但保持启用的少于 10 个 / 活跃工具少于 80 个。

# 检查已启用的 MCP
/mcp

# 在 ~/.claude.json 的 projects.disabledMcpServers 中禁用不使用的 MCP

插件Plugins

插件Plugins封装了工具以便于安装避免繁琐的手动设置。一个插件可以是技能Skill与 MCP 的组合也可以是绑定在一起的钩子Hooks/工具Tools

安装插件:

# 添加市场
claude plugin marketplace add https://github.com/mixedbread-ai/mgrep

# 打开 Claude运行 /plugins找到新市场并从中安装

显示 mgrep 的市场标签页 显示新安装的 Mixedbread-Grep 市场

如果你经常在编辑器之外运行 Claude CodeLSP 插件特别有用。语言服务器协议Language Server Protocol为 Claude 提供了实时类型检查、转到定义和智能补全功能,无需打开 IDE。

# 已启用插件示例
typescript-lsp@claude-plugins-official  # TypeScript 智能提示
pyright-lsp@claude-plugins-official     # Python 类型检查
hookify@claude-plugins-official         # 对话式创建钩子
mgrep@Mixedbread-Grep                   # 比 ripgrep 更好的搜索

与 MCP 同样的警告——注意你的上下文窗口。


技巧与建议

键盘快捷键

  • Ctrl+U - 删除整行(比狂按退格键快)
  • ! - 快速 Bash 命令前缀
  • @ - 搜索文件
  • / - 启动斜杠命令
  • Shift+Enter - 多行输入
  • Tab - 切换思考过程显示
  • Esc Esc - 中断 Claude / 恢复代码

并行工作流

  • 派生 (/fork) - 派生对话以并行执行不重叠的任务,而不是让排队的请求堆积
  • Git 工作树 (Worktrees) - 用于并行运行多个 Claude 实例而不会产生冲突。每个工作树都是一个独立的检出目录
git worktree add ../feature-branch feature-branch
# 现在在每个工作树中运行独立的 Claude 实例

使用 tmux 处理耗时命令

串流并观察 Claude 运行的日志/Bash 进程:

https://github.com/user-attachments/assets/shortform/07-tmux-video.mp4

tmux new -s dev
# Claude 在这里运行命令,你可以随时分离 (detach) 和重新连接 (reattach)
tmux attach -t dev

mgrep > grep

mgrep 是对 ripgrep/grep 的重大改进。通过插件市场安装,然后使用 /mgrep 技能。同时支持本地搜索和网络搜索。

mgrep "function handleSubmit"  # 本地搜索
mgrep --web "Next.js 15 app router changes"  # 网络搜索

其他有用命令

  • /rewind - 回退到之前的状态
  • /statusline - 自定义显示分支、上下文占比、待办事项 (Todos)
  • /checkpoints - 文件级撤销点
  • /compact - 手动触发上下文压缩

GitHub Actions CI/CD

使用 GitHub Actions 在 PR 上设置代码审查。配置完成后Claude 可以自动审查 PR。

Claude 机器人批准 PR Claude 批准了一个漏洞修复 PR

沙箱化Sandboxing

对风险操作使用沙箱模式——Claude 在受限环境中运行,不会影响你的实际系统。


关于编辑器

编辑器的选择会显著影响 Claude Code 的工作流。虽然 Claude Code 可以从任何终端运行,但配合功能强大的编辑器可以解锁实时文件跟踪、快速导航和集成命令执行。

Zed我的首选

我使用 Zed —— 用 Rust 编写,速度极快。瞬间打开,处理庞大的代码库也游刃有余,且几乎不占用系统资源。

为什么 Zed + Claude Code 是绝佳组合:

  • 速度 - 基于 Rust 的性能意味着当 Claude 快速编辑文件时不会有延迟。你的编辑器能跟上节奏
  • 智能体面板集成 - Zed 的 Claude 集成让你在 Claude 编辑时实时跟踪文件更改。无需离开编辑器即可在 Claude 引用的文件间跳转
  • CMD+Shift+R 命令面板 - 在可搜索的 UI 中快速访问所有自定义斜杠命令、调试器和构建脚本
  • 极低的资源占用 - 在执行繁重操作时不会与 Claude 争夺 RAM/CPU。运行 Opus 时这一点很重要
  • Vim 模式 - 如果你习惯 Vim它有完整的 Vim 键绑定支持

带有自定义命令的 Zed 编辑器 使用 CMD+Shift+R 弹出自定义命令下拉列表的 Zed 编辑器。右下角的牛眼图标显示了跟随模式 (Following mode)。

编辑器通用技巧:

  1. 分屏显示 - 一侧是运行 Claude Code 的终端,另一侧是编辑器
  2. Ctrl + G - 在 Zed 中快速打开 Claude 当前正在处理的文件
  3. 自动保存 - 开启自动保存,确保 Claude 读取的文件始终是最新的
  4. Git 集成 - 使用编辑器的 Git 功能在提交前审查 Claude 的更改
  5. 文件监听器 - 大多数编辑器会自动重载更改后的文件,请确认该功能已启用

VSCode / Cursor

这也是一个可行的选择,并且与 Claude Code 配合良好。你可以通过终端形式使用它,利用 \ide 自动与编辑器同步并启用 LSP 功能(现在在某种程度上与插件功能重叠)。或者你可以选择扩展程序,它与编辑器集成度更高,并拥有匹配的 UI。

VS Code Claude Code 扩展 VS Code 扩展为 Claude Code 提供了原生图形界面,直接集成到你的 IDE 中。


我的配置

插件 (Plugins)

已安装:(我通常一次只启用 4-5 个)

ralph-wiggum@claude-code-plugins       # 循环自动化
frontend-design@claude-code-plugins    # UI/UX 模式
commit-commands@claude-code-plugins    # Git 工作流
security-guidance@claude-code-plugins  # 安全检查
pr-review-toolkit@claude-code-plugins  # PR 自动化
typescript-lsp@claude-plugins-official # TS 智能提示
hookify@claude-plugins-official        # 钩子创建
code-simplifier@claude-plugins-official
feature-dev@claude-code-plugins
explanatory-output-style@claude-plugins-official
code-review@claude-code-plugins
context7@claude-plugins-official       # 实时文档
pyright-lsp@claude-plugins-official    # Python 类型
mgrep@Mixedbread-Grep                  # 更好的搜索

MCP 服务器

已配置(用户级):

{
  "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
  "firecrawl": { "command": "npx", "args": ["-y", "firecrawl-mcp"] },
  "supabase": {
    "command": "npx",
    "args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref=YOUR_REF"]
  },
  "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] },
  "sequential-thinking": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
  },
  "vercel": { "type": "http", "url": "https://mcp.vercel.com" },
  "railway": { "command": "npx", "args": ["-y", "@railway/mcp-server"] },
  "cloudflare-docs": { "type": "http", "url": "https://docs.mcp.cloudflare.com/mcp" },
  "cloudflare-workers-bindings": {
    "type": "http",
    "url": "https://bindings.mcp.cloudflare.com/mcp"
  },
  "clickhouse": { "type": "http", "url": "https://mcp.clickhouse.cloud/mcp" },
  "AbletonMCP": { "command": "uvx", "args": ["ableton-mcp"] },
  "magic": { "command": "npx", "args": ["-y", "@magicuidesign/mcp@latest"] }
}

关键在于:我配置了 14 个 MCP但每个项目只启用 ~5-6 个。这能保持上下文窗口的健康。

关键钩子 (Key Hooks)

{
  "PreToolUse": [
    { "matcher": "npm|pnpm|yarn|cargo|pytest", "hooks": ["tmux reminder"] },
    { "matcher": "Write && .md file", "hooks": ["block unless README/CLAUDE"] },
    { "matcher": "git push", "hooks": ["open editor for review"] }
  ],
  "PostToolUse": [
    { "matcher": "Edit && .ts/.tsx/.js/.jsx", "hooks": ["prettier --write"] },
    { "matcher": "Edit && .ts/.tsx", "hooks": ["tsc --noEmit"] },
    { "matcher": "Edit", "hooks": ["grep console.log warning"] }
  ],
  "Stop": [
    { "matcher": "*", "hooks": ["check modified files for console.log"] }
  ]
}

自定义状态栏 (Custom Status Line)

显示用户、目录、带脏标记的 Git 分支、剩余上下文 %、模型、时间和待办事项计数:

自定义状态栏 我的 Mac 根目录下的状态栏示例

affoon:~ ctx:65% Opus 4.5 19:52
▌▌ 规划模式已开启 (按 shift+tab 切换)

规则结构 (Rules Structure)

~/.claude/rules/
  security.md      # 强制性安全检查
  coding-style.md  # 不可变性,文件大小限制
  testing.md       # TDD80% 覆盖率
  git-workflow.md  # 约定式提交 (Conventional commits)
  agents.md        # 子智能体委派规则
  patterns.md      # API 响应格式
  performance.md   # 模型选择 (Haiku vs Sonnet vs Opus)
  hooks.md         # 钩子文档说明

子智能体 (Subagents)

~/.claude/agents/
  planner.md           # 分解功能需求
  architect.md         # 系统设计
  tdd-guide.md         # 测试先行
  code-reviewer.md     # 质量审查
  security-reviewer.md # 漏洞扫描
  build-error-resolver.md
  e2e-runner.md        # Playwright 测试
  refactor-cleaner.md  # 废弃代码清理
  doc-updater.md       # 保持文档同步

核心要点

  1. 不要过度复杂化 - 将配置视为微调,而非架构设计
  2. 上下文窗口极其珍贵 - 禁用不使用的 MCP 和插件
  3. 并行执行 - 派生对话,利用 Git 工作树
  4. 自动化重复性任务 - 为格式化、代码检查、提醒设置钩子
  5. 明确子智能体的作用域 - 受限的工具 = 专注的执行

参考资料


注: 以上仅为部分细节。进阶模式请参阅 长篇指南 (Longform Guide)


@DRodriguezFX 在纽约共同开发 zenith.chat,并赢得 Anthropic x Forum Ventures 黑客松。