🚦 一、三个工作模式
Claude Code 会动手改你电脑上的文件,默认模式下,每一步都要你手动回车给它权限。按 Shift + Tab 可以在三个模式之间循环切换:
| 模式 | 它会做什么 | 适合什么时候用 |
|---|---|---|
| manual mode | 每一步操作都弹窗问你,确认了才执行 | 新手、改不熟悉的代码、不确定它想干什么 |
| auto mode | 所有改动自动执行,不再逐个确认 | 任务明确、你已经信任它了 |
| plan mode | 只看不改,先出方案,每一步也需要你确认 | 改动大、涉及多个文件,想先看清楚 |



当上手时,最好先用默认模式,看着它每一步在干什么。熟悉之后,可以切到 Auto-accept 提速。遇到一个全新的、比较大的问题时,可以先用plan模式规划,再用auto模式执行。auto模式也不代表失控——任何时候按 Esc 都能让它停下来。
📝 二、先规划,再动手
上来就让 Claude 写代码,通常的结果是写出来跟你想的不一样,然后改来改去。更省事的做法是先让它出方案。(虽然后续也还要反复改,但最开始的时候最好还是用plan)
下面是一个开发番茄钟网页的例子,这个例子会贯穿全文:
按 Shift + Tab 切到 Plan 模式,然后输入:
1 | 开发一个番茄钟网页,技术栈用 React + TypeScript + Tailwind CSS。 |
这段提示词里有三样东西,在你输入的提示词里最好都包含进去:
- 技术栈——别让它猜。说要 React 就是 React,不然它可能给你一个原生 JS 版本。
- 功能——越具体越好。”番茄计数”和”番茄计数 + 历史记录”,是两个工作量。
- 要求——“先规划不写代码”,明确告诉它这一轮只要方案。
方案出来后,有三种模式供你选择:

自动接受并开始改、逐处手动确认、或者先给反馈调整方案。
第一次建议选手动确认,等你看它规划得靠谱了再放权。
另外,计划会存成一个文件。任务很长时它照着这份计划走,不会做着做着忘了走到哪一步。
🎤 三、需求说不清,就让 Claude 来问你
上面那种写法适合你已经想清楚要什么。但很多时候你只有一个模糊的念头:”我想做个番茄钟。”用什么技术栈、要不要统计、什么风格,全没想好。
这种情况别硬憋需求文档,反过来让它采访你:
1 | 我想做一个番茄钟,但还没想清楚具体怎么做。 |
它会开始问:技术栈偏好?桌面端还是网页?倒计时固定还是可自定义?要不要历史记录?界面喜欢什么风格?
这些问题里有些是你压根没想到的,比如”休息提醒用弹窗、音效还是浏览器通知”。逐个回答完,需求自然就清晰了。
需求不明确时,让 AI 帮你做需求分析,比让它立刻写代码有用得多。
🎯 四、用 @ 指定文件,提高效率、节省token
当项目文件很多,而你想改的只是其中一个文件时,用 @ 可以直接告诉它看哪个文件:
1 | 把倒计时数字改大一点,加一个呼吸动画。 |
三种写法:
@./src/components/TimerDisplay.tsx:指定单个文件@./src/components/:指定整个目录@./src/App.tsx @./src/styles/global.css:一次指定多个
输入 @ 的时候会弹出候选列表,不用手打完整路径。
它有两个好处。一是不会改到别的文件——你只指了这一个,它就知道边界在哪。二是省上下文:不指定文件时,它为了理解需求会自己搜索、读取大量代码,这些全都占用上下文;指定之后只读你点名的那几个。
🧠 五、面对复杂任务,启动ultrathink模式
像”加一个统计面板,展示今日完成数、累计专注时长、连续完成天数,还要处理跨日期和持久化”这种比较复杂的任务,涉及数据结构和边界情况,可以启用ultrathink思考强度模式。
可以在提示词末尾加一句:
1 | 请 ultrathink 后给我方案。 |
它会在这一轮把思考推到最高挡,先把方案从头捋一遍再落笔,漏掉的边界情况会明显减少。
一些老的版本教程会写 think / think hard / think harder / ultrathink 四个关键词,现在真正生效的只有 ultrathink,其余几个只是普通文字。
另外,也可以用 /effort 调全局的思考强度等级:
效果会在后续所有对话里都生效。
或者在 /model 里设置:用左右箭头切换思考强度,按下回车即生效:

当然了,思考越深,就会越慢越贵。
📌 六、用 CLAUDE.md 让项目自己”自我介绍”
CLAUDE.md 是一个放在项目根目录的文件,Claude Code 每次启动时都会自动读取这个文件的内容,作为它理解项目的背景信息。它不是孤立的,和《Claude Code 入门指南》里「功能一:长期记忆」讲的是同一套记忆机制:
| 层级 | 放在哪 | 记什么 | 何时生效 |
|---|---|---|---|
| 全局记忆 | ~/.claude/CLAUDE.md,以及它指向的个人档案 |
你是谁:技术栈、学习计划、代码风格、常用路径 | 任何目录启动都自动加载 |
| 项目说明 | 项目根目录的 CLAUDE.md |
这个项目是什么:技术栈、规范、命令、目录结构 | 在这个项目里启动时自动加载 |
| 项目经验 | .claude/projects/<项目>/memory/,由 MEMORY.md 做索引 |
踩过的坑、工作小结、下一步计划 | 新会话「载入记忆」时读取 |
你可以直接在对话框输入 /init,claude code会扫描项目结构,自动生成一份Claude.md。默认是英文,不满意可以让它改成中文,或者自己打开改——它就是个普通的 Markdown 文件,放在你的项目目录下。
一份好用的 CLAUDE.md 通常包含:
- 项目简介:一句话说清这是什么
- 技术栈:用了哪些框架和工具
- 代码规范:命名、组件写法、你不想被改掉的约定
- 项目结构(可选):哪个目录放什么
写不写有一条判断标准:删掉这条,Claude 会不会犯错?不会就别写。
所以下面这些东西不该放进去:
- 详细的 API 文档——太长,需要时用 @ 引用具体文件
- 每次都在变的临时需求——用
/compact或/clear处理 - “写出好代码”这种空话——它本来就知道
CLAUDE.md 是活文档。加了新功能、换了技术栈,顺手更新,别让它变成三个月前的老黄历。
这样一来,换到任何目录都不需要重新自我介绍,回到某个项目也不用重翻历史记录。
💾 七、Claude Code变笨了:用/context → /compact → /clear
当你和cc在一个对话窗口里聊了很久后,你会发现它变笨了,执行任务越来越慢,错误也越来越多。
其实它不是真的变笨了,而是上下文窗口快满了。对话历史越来越长,留给思考的空间越来越小,它就开始顾此失彼。
输入下面这个命令,查看上下文用量:
1 | /context |
它告诉你当前占了多少。超过 70% 就该处理了。有两种处理方法:
| 命令 | 效果 | 什么时候用 |
|---|---|---|
/compact |
把之前的对话压缩成摘要,保留关键信息 | 还要继续做同一个任务 |
/clear |
彻底清空,像新同事第一天上班 | 换到完全不相关的任务 |
优先用 /compact——它像看完一本书写一页读书笔记,核心还在,细节丢了。
只有任务真的完成了,才用 /clear。
↩️ 八、它改错了:Esc Esc 回滚
当它的改动方向不对时,连按两次 Esc(或输入 /rewind),会弹出最近操作的时间线:
1 | ❯ 1. [14:35] 修改了 useTimer.ts(添加音效逻辑) |
选一个时间点,文件恢复到那一刻,对话上下文也一起回滚,就像那几步没发生过。
三种回滚方式对比:
| 方式 | 文件 | 对话 | 适用场景 |
|---|---|---|---|
Esc Esc / /rewind |
✅ | ✅ | 走错方向,想彻底回到某个节点 |
| 说”撤销刚才的修改” | ✅ | ❌ | 只是代码改错了 |
git checkout . / git reset --hard |
✅ | ❌ | 最保险的全局回滚,不依赖 Claude Code |
Rewind 有个局限:它只能回滚 Claude 直接创建或编辑的文件。如果它执行了 npm install,生成的 node_modules、package-lock.json 是撤不掉的。
所以最稳的习惯是:让它做大改动之前,先 git commit 存一份档。真出问题了,一条命令回到干净状态。Claude 一旦跑偏,立刻回滚,别让它一路错下去。
🔄 九、关掉终端,也能接着聊
如果你直接关终端、重开 claude,是一个全新会话,之前聊的就没了。
但是每次退出claude code的时候,它都会自动存档。
新开对话后,输入:
1 | claude --resume |
会列出最近的会话,选中之后,Claude Code 就会恢复到那次对话的状态,之前聊了什么、改了哪些文件、上下文是什么,全都还在。
如果你确定要恢复的是最近一次对话,还有一个更快的命令:
1 | claude --continue # 或者 claude -c |
这个命令会直接恢复最近一次对话,省去选择的步骤。
看到这里可能你会有些疑问,有了这两条命令,是不是就不用 CLAUDE.md 和记忆了?
不是,两者管的东西不一样:
claude --resume |
CLAUDE.md / 记忆 | |
|---|---|---|
| 带着什么 | 整段对话历史,包括试错的方案 | 只带结论 |
| 怎么用 | 手动挑一个历史会话 | 新会话自动加载,或说「载入记忆」 |
| 上下文开销 | 整段历史重新塞进去 | 只读索引和需要的几篇 |
| 跨目录 | 不行,只能回到原目录的会话 | 可以 |
--resume 是接着上次那通电话聊,记忆是交接班笔记。 没干完的活,用 --resume 接着干;已经定下来的结论,写进 CLAUDE.md 和 memory。
🎨 十、用 Skill 装个”专业技能包”
Skill 是什么
Skill 是 Claude 的”专业技能包”:由专业人员编写的一组指令、模板和参考文档。装上之后,Claude 遇到对应场景会按这份专业指南工作——相当于给它报了个培训班,让它学习专业人士的做法。
先找到靠谱的 Skill
Skill 的入口在插件市场。输入 /plugin 打开市场界面,能看到官方市场和已添加的其他市场。


优先用官方市场的。Anthropic 自己维护的 Skill(frontend-design、pdf 等)经过验证,质量和安全都更可靠。
官方市场里没有想要的,可以添加社区市场,把 GitHub 上的仓库加进来:
1 | /plugin marketplace add <用户名>/<仓库名> |
第三方 Skill 良莠不齐,挑的时候需要看几样东西:
- 来源:优先官方或知名维护者;个人仓库看 star、最近更新时间、有没有人提 issue
- 内容:打开 SKILL.md 看写没写清楚——什么时候触发、具体怎么做、踩过哪些坑。只写”你是一个前端专家”这种空话的,基本没用
- 体积:Skill 的名字和描述每次会话都会加载,装一堆用不上的反而白占上下文
装之前最好看一眼它带了哪些文件。带脚本的 Skill 会在你电脑上执行命令,来源不明的别装。
安装和使用
以 frontend-design 为例,它专门用来生成高质量的前端界面。在对话框输入:
1 | /plugin install frontend-design |
或者在刚刚的plugin界面下选中然后安装
装好后,在 /plugin 的 Installed 列表里能看到它处于 enabled 状态。
然后直接提需求:
1 | 番茄钟的功能都完成了,但页面很丑。 |
Claude 会自动加载这个 Skill,按专业设计标准重做配色、布局、字体和交互动画。你不需要懂设计,也不用自己写样式。
Skill 也不只用于前端。插件市场里还有文档处理、测试、代码审查等各类技能,按需安装就行。
一个要注意的地方
Skill 是在你的主对话里工作的:它的指南、它读的文件、它生成的代码,全部占用当前会话的上下文。上下文已经很紧张时,先别急着加载大 Skill——可以用下一节的子代理。
🧩 十一、写完代码谁来把关?用子代理做 Code Review
番茄钟功能都做完之后,想必你还有一个问题:这些代码质量怎么样,有没有 bug?
自己一行一行看太累。那让 Claude 自己 review 呢?可以,但这些代码就是它自己写的,自己审自己多少会”手下留情”,一些问题它看不出来。
更好的办法是专门创建一个子代理来审查。
什么是子代理
子代理是 Claude 的”分身”:一个独立的 Claude 实例,有自己的上下文窗口,跟你当前的主对话完全隔离。它读了多少文件、分析多少代码,都不占用你的主会话;干完活只把结论汇报回来。
创建代码审查子代理
新版 Claude Code有两种方式创建:
方式一:让 Claude 帮你创建。直接说:
1 | 帮我创建一个 code-reviewer 子代理,负责审查代码的正确性、边界情况、 |
它会在 .claude/agents/ 下生成配置文件。项目专用的放项目里的 .claude/agents/,所有项目通用的放 ~/.claude/agents/。
方式二:自己写文件。子代理就是一份带 frontmatter 的 Markdown:
1 | --- |
两种方式得到的东西一样,本质都是给子代理写一份”工作说明书”:审什么、按什么标准审、结果怎么输出。
用它审查代码
1 | 用 code-reviewer 子代理帮我审查这个项目的代码 |
执行时能看到子代理在独立工作。审查结果通常是几条具体问题,比如定时器没清除、参数没校验、可访问性不足,并按严重程度标好。
然后针对结果修复:
1 | 请修复审查结果中标记为「严重」和「中等」的问题。 |
不只用于 Code Review
任何需要”独立视角”的活都适合交给子代理:写测试、查文档(让子代理去读某个库的文档,总结要点汇报)、批量修改一组文件。
子代理和 Skill 的区别
这两个都是用一份 .md 描述能力,很容易混。区别在于谁在干活、占不占上下文:
| Skill | 子代理 | |
|---|---|---|
| 谁在干活 | 还是主对话里的 Claude,只是加载了一份专业指南 | 新开一个独立的 Claude 实例 |
| 上下文 | 指南、读的文件、写的代码都占主会话 | 只把结论汇报回来,不占主会话 |
| 来源 | 插件市场安装,开箱即用 | 自己用 /agents 创建,按需定制 |
前面装过的 frontend-design 就是这种模式:干活的是主对话里的 Claude,它只是加载了一份设计指南。
所以,想让它在某个领域做得更好,用 Skill;想让独立视角干一件独立的事、还不占主上下文,用子代理。
🧭 十二、常用操作速查表
| 想做的事 | 操作 |
|---|---|
| 切换工作模式 | Shift + Tab |
| 中断它 | Esc |
| 先出方案再动手 | Plan 模式 + 说清技术栈、功能、要求 |
| 需求不明确 | 让它先向你提问 |
| 指定要改的文件 | @文件路径 |
| 这一轮深度思考 | 提示词里加 ultrathink |
| 全局调整思考深度 | /effort |
| 生成项目说明 | /init |
| 查看上下文占用 | /context |
| 压缩上下文 | /compact |
| 清空上下文 | /clear |
| 回滚 | Esc Esc 或 /rewind |
| 恢复历史对话 | claude --resume |
| 恢复最近一次对话 | claude -c |
| 安装技能/插件 | /plugin install <名字> |
| 创建子代理 | 直接描述需求,或写 .claude/agents/*.md |
写在最后
Claude Code 像一个能力很强,但需要你正确引导和不断磨合的超级工作伙伴。你给的信息越清晰,产出质量越高;流程越规范,效率越高。
📚 参考文档:Claude Code 使用教程 - 小林面试笔记