Claude Code常用技巧

CLAUDE.md:告诉 Claude 你的项目约定

Claude Code 启动时会自动读取几个位置的 CLAUDE.md 文件,把内容拼进上下文:

  • 项目级 :当前工作目录下的 CLAUDE.md,团队共享,记录本项目的架构、命令、规范。
  • 项目级本地版CLAUDE.local.md,建议加到 .gitignore 里,用来放个人临时偏好,不进团队仓库。
  • 用户级~/.claude/CLAUDE.md,个人全局偏好,所有项目都生效。
  • 子目录 :在 monorepo(多个子项目放在同一个仓库里)下,每个子目录也可以放自己的 CLAUDE.md,Claude 读到这个目录下的文件时才顺带加载对应的规则。

简单说,就是你提前把「每次跟 Claude 聊天都得重复交代一遍的话」写进文件里,它自动记住。

一个典型的项目 CLAUDE.md 长这样:

复制代码
# 项目说明

这是一个 Next.js 全栈项目,前后端都在同一个仓库里。

## 开发命令

- `npm run dev` 启动本地开发服务器,端口 3002
- `npm run build` 生产构建
- `npm run typecheck` 类型检查,提交前必跑

## 代码约定

- 组件用 TypeScript + 函数式写法,禁用 class component
- 样式统一用 Tailwind CSS,不要写 inline style
- 不要在客户端组件里直接 import 服务器模块

这份文档相当于一份长期生效的系统提示词,不用每次会话重复解释「我这个项目是干嘛的」「什么能做什么不能做」,效率高很多。

懒得手写也没关系,在 Claude Code 会话里输入 /init 命令,它会自己扫一遍项目,总结架构和命令,生成一份初版 CLAUDE.md,你在这个基础上改就行。

官方给的经验是:CLAUDE.md 越短越好。Claude 每次会话都加载它,写得臃肿反而会让重要规则被淹没。

适合写进去的:

  • Claude 猜不到的内部命令(比如自定义脚本、特殊的 build 流程)
  • 和语言默认不同的代码风格
  • 测试运行方式、提交规范
  • 项目特有的环境变量、隐含约束

不适合写的:

  • Claude 读代码就能看出来的内容(不用复述目录结构)
  • 详细的 API 文档(链接到官方文档就行)
  • 频繁变动的任务进度
  • 「写干净的代码」这种显而易见的废话

我的一个实用习惯:每当发现 Claude 反复犯同一个错,就把「正确的做法」加一条到 CLAUDE.md,下次不用再重复纠正。久了它就像一份项目的用户手册,团队其他成员也能用。

Auto memory:Claude 自己写的记忆

CLAUDE.md 写给 Claude 的指令。Claude Code 还有另一套记忆机制叫 auto memory ,是 Claude 自己写给自己的笔记,两者互补。

两者的关键差异:

CLAUDE.md Auto memory
谁写 你(当然也可以让 Claude Code 帮你更新) Claude
内容 规则、架构、约定 Claude 观察到的经验、偏好、调试思路
触发时机 你手动编辑 Claude 自动判断是否值得记。当然你也可以要求它记,比如「把 xxx 记到 memory 里」

比如你随口一句「这个项目以后用 pnpm 不用 npm」,或者告诉它「每次改完要跑 npm run typecheck」,Claude 觉得值得记住时,就会把这条笔记写进 memory 文件里,下次会话自动加载。你不用主动维护,它自己会维护这套 memory。

记忆文件按项目目录区分,每个项目有独立的目录:

复制代码
~/.claude/projects/<项目路径>/memory/
├── MEMORY.md          # 索引,每次会话启动时加载前 200 行
├── debugging.md       # 按主题分的笔记文件
├── api-conventions.md
└── ...

其中 <项目路径> 是把项目绝对路径里的 / 替换成 - 得到的名字。比如 /Users/alice/code/myapp 对应的目录就是 ~/.claude/projects/-Users-alice-code-myapp/memory/

MEMORY.md 是索引文件,启动时自动加载(上限前 200 行或 25KB)。其他 topic 文件不会一股脑塞进上下文,Claude 按需读取,保证启动成本可控。

所有文件都是普通 Markdown,你随时可以打开看、改、删。

日常管理用 /memory 命令:输入后会列出当前会话加载的所有 CLAUDE.mdCLAUDE.local.md、auto memory 文件,选中就能直接在编辑器里打开。这个面板里也能一键开关 auto memory。

auto memory 的文件是本地存储的,不会跨机器同步,换一台电脑或者在云端跑,memory 要重新积累。

另外 memory 目录是按项目路径存的,如果你把项目文件夹改了名或者挪了位置,Claude 会把它当成一个新项目,之前积累的 memory 就找不到了。

我个人觉得这套机制挺有用,它能帮你积累那些自己都没意识到的习惯,比如某个项目的特定测试命令、某个库的坑点等。隔一段时间 /memory 看看,你会发现 Claude 记下的东西比你想象的多。

常用斜杠命令

进入 Claude Code 之后,几个斜杠命令值得记一下。

/model 查看和切换当前使用的模型。上下方向键切换模型,默认会根据你的订阅计划自动选,一般是 Sonnet 4.6 或 Opus 4.7。

左右方向键调整推理强度 (reasoning effort),也就是模型在给答案前思考的深度,共 low / medium / high / xhigh / max 五档。强度越高效果越好,但速度更慢、token 消耗更多。

/clear 清除当前上下文,重新开始一轮新对话。做完一个任务换下一个时一定要 /clear,否则旧上下文堆着会干扰 Claude 的判断,还白白消耗 token。

/compact 手动压缩当前对话。上下文快满时 Claude 会自动压缩,你也可以主动触发。可以加参数指导它侧重保留什么,比如 /compact 侧重 API 改动相关的部分,但它只是影响摘要的侧重点,不能精确裁剪。

/status 打开设置面板,查看版本、模型、账号和连接状态,最常用的是确认 Anthropic base URL 是不是对的。

/init 生成项目的 CLAUDE.md,前面已经介绍过。

/simplify 让 Claude 审查你最近改动过的文件,从代码复用、质量和效率三个角度找问题并自动修复。可以加参数指定侧重方向,比如 /simplify 重点看内存效率。写完一段代码之后跑一下,相当于让 Claude 帮你做一轮 code review 加自动重构。

/insights 生成一份当前项目的使用报告,分析你和 Claude 的交互模式、常碰到的摩擦点、项目里哪些区域改动最多。适合隔一段时间跑一次,帮你发现自己没注意到的工作习惯。

在输入框里用 @ 可以引用具体文件,比如 @src/auth.ts 让 Claude 直接读这个文件的内容,比让它自己搜快得多,也更准。

要输入一段比较长的 prompt 时,按 Ctrl + G 可以把当前输入的内容丢到你的默认编辑器里打开,编辑完保存关闭,内容会回填到 Claude Code 的输入框。在终端里直接打字编辑比较别扭,长 prompt、粘贴大段日志、写复杂的计划时都用得上。

回溯与中断

Esc 打断

Claude 正在执行的时候,按一下 Esc 能立刻叫停它,上下文保留着,你可以马上纠正方向:

复制代码
我:重构这个模块
Claude:<开始读一堆文件...>
我:<按 Esc>
我:先别动 tests/ 目录下的内容,只重构 src/

这个操作用得非常多。Claude 跑偏了千万别干等,直接打断改方向。

撤销到之前的对话

按两下 Esc(或者输入 /rewind)会打开撤销菜单,列出之前所有的检查点(checkpoint)。checkpoint 是 Claude Code 在本地自动保存的对话状态和文件快照 ,选中某个检查点,对话会退回到那个时刻,Claude 之前改过的代码文件也会一起自动撤销,不用你手动 git checkout。

每次你提交一条 prompt 都会自动存一个 checkpoint,相当于一张安全网,这几种场景特别好用:

  • Claude 改了一半你觉得方向不对,直接回到改动前的代码。
  • 对话上下文越来越乱,想退到某个还清爽的时刻重新开始。
  • 尝试了一个风险较大的改法,效果不好想完全撤销。

有两个坑要注意:

  • checkpoint 只追踪 Claude 通过 Edit / Write 工具直接改的文件 。如果 Claude 是执行 rmmv 这种 bash 命令改的,不在追踪范围内,也就没法 rewind 回来。
  • checkpoint 不是 git 的替代品。默认保留 30 天左右就会清理,关键代码还是要靠版本控制。

恢复历史会话

关掉终端、电脑重启、第二天接着干活,会话不会丢。Claude Code 自动保存每个会话的记录:

复制代码
# 继续当前目录下最近一次会话
claude --continue

# 从最近的会话列表里挑一个
claude --resume

注意 --continue 只认当前目录下最近的那次会话。如果你到了别的项目目录下跑这条命令,它不会把你带回「上次那个项目」。

多任务并行时,用 /rename 命令给会话起个描述性的名字,比如 oauth-migrationdebug-memory-leak,之后 --resume 时就能一眼找到想要的那个。

我的习惯是把每个待办事项当成一个独立会话跑,像 git 分支一样管理,不同任务的上下文互不污染,切回来继续也没有额外心智成本

相关推荐
ServBay23 分钟前
ServBay 1.30.0 更新:双平台引入 MCP 服务,AI 编程助手成为全栈本地运维
后端·ai编程
ZzT1 小时前
谈谈 AI-Ready 和 AI-SDLC
openai·ai编程·claude
goldenrolan1 小时前
A公司物料替代测试系统 v1.7:从需求到 exe/apk 的 AI 辅助全链路实践
android·自动化测试·软件测试·python·ai
gis分享者1 小时前
GPT-Image-2 图像生成模型新手实战指南
gpt·ai·image·模型·图像生成
JavaGuide1 小时前
Token 暴降 59%!这个项目让 Claude Code / Codex 不再满仓库乱翻。
后端·ai编程
ofoxcoding1 小时前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
m0_634666732 小时前
Anthropic Fable/Mythos 被紧急暂停:前沿模型商业化开始碰到真正的政策墙
人工智能·ai·ai编程
洞窝技术2 小时前
双引擎赋能AI编程:OpenSpec+CodeGraph破解落地难题,兼顾规范、效率与成本
ai编程
Jackeyzhe2 小时前
我用 Codex 做周报自动化,第一件事是防止它胡写
ai
王小二AI3 小时前
baoyu-skills 实战:22 个 AI 技能,从采集到发布一句话搞定
ai编程·cursor