Skip to content

Claude Code 快速上手核心指南

Claude Code 是 Anthropic 官方出品的 AI 原生编码工具,它将大型语言模型的能力直接集成到终端中,让你可以用自然语言与 AI 协作完成编程任务。不同于传统的代码补全工具,Claude Code 能够理解整个项目的上下文,执行复杂的开发任务,从代码生成到重构、从调试到文档编写,它都能胜任。

本章将带你快速掌握 Claude Code 的核心用法,包括安装配置、基础操作、实用技巧和常用指令。无论你是第一次接触 AI 编程工具,还是想更高效地使用 Claude Code,这里都有你需要的知识。


快速安装

Claude Code 基于 Node.js 构建,因此安装前请确保你的系统已安装 Node.js 18 或更高版本。安装过程非常简单,通常只需要几分钟。

为什么需要 Claude Code

在传统的开发流程中,开发者需要在编辑器、终端、浏览器和文档之间频繁切换。Claude Code 将这些工作流整合到一个统一的界面中:你可以在同一个终端窗口里编写代码、运行测试、查看文档、甚至与团队成员协作。更重要的是,它能理解你的项目结构,记住你的编码习惯,真正成为你的编程助手。

方法一:手动安装

手动安装适合喜欢掌控每个步骤的开发者,也让你更清楚工具的组成部分。

bash
# 全局安装 Claude Code CLI
# 使用 -g 参数将命令安装到全局,这样在任何目录都能使用
npm install -g @anthropic-ai/claude-code

# 验证安装是否成功
# 如果显示版本号(如 0.1.25),说明安装成功
claude --version

安装过程中,npm 会自动下载所有依赖并配置好环境变量。如果遇到权限问题,可以尝试在命令前加 sudo(macOS/Linux)或以管理员身份运行终端(Windows)。

方法二:让 AI Agent 帮你安装

如果你已经在使用其他 AI 编程助手(如 Cursor、Windsurf 或本项目的 AI Agent),可以让它们帮你完成安装。这种方式的好处是 AI 会自动检测你的环境,处理可能出现的依赖冲突,并根据你的系统配置选择最优的安装方式。

直接这样说就行:

帮我装 anthropic 的 claude code

或者更具体一点:

安装 claude code cli,并检查 Node.js 版本是否兼容

AI Agent 会:

  1. 检查当前 Node.js 版本
  2. 如果不符合要求,提示你升级
  3. 执行安装命令
  4. 验证安装结果
  5. 如有问题,自动尝试修复

首次启动与初始化

安装完成后,进入你的项目目录启动 Claude Code:

bash
# 进入项目目录(Claude Code 会在当前目录下工作)
cd /path/to/your/project

# 启动 Claude Code
claude

首次启动时,Claude Code 会引导你完成几个重要的初始化步骤:

  1. 登录 Anthropic 账户:你需要有一个 Anthropic 账户才能使用 Claude Code。如果没有,系统会提示你注册。

  2. 选择使用计划

    • 免费计划:适合个人学习和轻量级使用,有一定的调用限制
    • Pro 计划:适合专业开发者,提供更高的调用配额和优先响应
  3. 同意使用条款:阅读并同意 Anthropic 的服务条款和隐私政策

  4. 可选:配置 API 密钥:如果你有自定义的 API 密钥(比如通过第三方服务提供商获取的),可以在此时配置

中国区用户的特别说明

由于网络原因,中国区的用户可能无法直接访问 Anthropic 的官方服务。Claude Code 支持使用兼容 Anthropic API 格式的第三方服务,这在技术上是完全可行的。

你有两个选择:

  1. 直接使用 API Token:购买兼容 Anthropic API 的服务商提供的 Token,通过环境变量配置
  2. 使用 Coding Plan:一些服务商提供专门的 Coding Plan,针对代码场景优化,通常更实惠

推荐做法:直接让 AI Agent 帮你完成配置。只需提供厂商给的配置信息(如 API 地址、密钥等),AI 会自动设置正确的环境变量。

更详细的配置指南请参考: 如何安装 claudecode 以及如何配置环境变量


快速开始:做点小实验

安装完成后,不要急于在正式项目中使用,建议先做几个小实验来熟悉 Claude Code 的工作方式。这 3 个实验设计得由浅入深,分别对应 Claude Code 的三种核心能力:自然语言理解、内容生成和代码执行。

实验 1:对话 —— 感受 AI 的理解能力

这个实验的目的是让你体验 Claude Code 的自然语言理解能力。与普通的搜索引擎不同,Claude Code 能够理解上下文、进行多轮对话,并根据你的反馈调整回答。

试试这些对话:

你好,你是谁?

Claude 会介绍自己是 Claude Code,Anthropic 开发的 AI 编程助手。

什么是闭包?太长不看版本

观察 Claude 如何根据"太长不看"这个提示,给出简洁但准确的解释。

JavaScript 和 TypeScript 有什么区别?

这个问题涉及技术对比,看 Claude 能否给出结构化的、有深度的回答。

实验要点:注意 Claude 的回答风格——它通常会先给出核心结论,再展开细节。这种"倒金字塔"式的回答方式非常适合快速获取信息。

实验 2:生成 Markdown 文档 —— 体验内容创作

这个实验展示 Claude Code 的内容生成能力。对于开发者来说,写文档往往是最头疼的事情之一。Claude 可以根据你的要求快速生成结构清晰、内容完整的文档。

输入这个指令:

帮我写一份 Git 常用命令的 Markdown 文档
要求:包含命令、说明、示例

Claude 会做什么:

  1. 分析你的需求:Git 常用命令、Markdown 格式、三要素(命令、说明、示例)
  2. 规划文档结构:通常会按使用场景分类(初始化、日常开发、分支管理、远程协作等)
  3. 生成内容:为每个命令提供简洁说明和实用示例
  4. 格式化输出:使用 Markdown 语法,确保格式规范

预期输出示例

markdown
# Git 常用命令速查表

## 初始化仓库

| 命令 | 说明 | 示例 |
|------|------|------|
| `git init` | 初始化新仓库 | `git init my-project` |
| `git clone` | 克隆远程仓库 | `git clone https://github.com/user/repo.git` |

...

进阶尝试:你可以增加更多要求,比如"添加中文注释"、"按使用频率排序"、"包含常见错误处理"等,观察 Claude 如何调整输出。

实验 3:编写并运行游戏 —— 完整的代码工作流

这个实验是最具挑战性的,它展示了 Claude Code 的完整代码工作流:理解需求、编写代码、创建文件、运行程序、处理错误。通过这个实验,你能真正感受到 AI 编程助手的威力。

输入这个指令:

用 Python 写一个贪吃蛇游戏
要求:
1. 使用 pygame 库
2. 有分数显示
3. 按 ESC 退出

写完后帮我运行它

Claude 会执行以下步骤:

步骤 1:检查环境

  • 检查 Python 是否安装
  • 检查 pygame 库是否可用
  • 如有缺失,提示你安装

步骤 2:编写代码

  • 创建游戏主文件(如 snake_game.py
  • 实现游戏逻辑:蛇的移动、食物生成、碰撞检测
  • 添加分数显示功能
  • 实现 ESC 键退出

步骤 3:运行游戏

  • 执行 Python 脚本启动游戏
  • 游戏窗口会弹出,你可以用方向键控制蛇

步骤 4:后续支持

  • 如果游戏有 bug,你可以直接说"蛇穿墙了,修复一下"
  • 如果想加功能,比如"增加难度随分数提升",Claude 会继续修改

这个实验的价值

  1. 验证安装:确保 Claude Code 能正常执行代码
  2. 体验交互:感受与 AI 协作开发的过程
  3. 建立信心:看到 AI 能独立完成一个完整的可运行程序

常见问题

  • Q: 如果我没有安装 pygame?

    • A: Claude 会检测到并提示你运行 pip install pygame,你也可以让 Claude 帮你安装
  • Q: 游戏运行后终端被占用了怎么办?

    • A: 按 ESC 退出游戏,或者在其他终端窗口继续使用 Claude Code
  • Q: 可以换成其他编程语言吗?

    • A: 当然可以!试试"用 JavaScript 写"、"用 HTML5 Canvas 写"等

核心技巧

掌握这些技巧,能让你的 Claude Code 使用效率提升数倍。这些技巧来自实际开发经验,涵盖了最常用的操作场景。

技巧 1:双击 Esc 回退对话 —— 撤销误操作

这是 Claude Code 中最常用、最重要的快捷键。在与 AI 协作时,你可能会说错话、给错指令,或者对 AI 的回答不满意。双击 Esc 能让你快速"时光倒流"。

快捷键详解:

按一次 Esc     → 清除当前正在输入的内容(类似 Ctrl+C)
按两次 Esc     → 回退到上一次对话状态(撤销上一轮对话)
按三次 Esc     → 清除所有对话历史(重新开始)

使用场景:

  • 场景 A:你不小心发了一个错误的指令,Claude 开始执行了。快速按两次 Esc,回到执行前的状态。
  • 场景 B:Claude 的回复不是你想要的,你想换个方式提问。双击 Esc 撤销,重新组织语言。
  • 场景 C:对话已经进行了很多轮,上下文混乱了。三击 Esc 清空,重新开始。

⚠️ 重要注意:双击 Esc 回退的是对话状态,不是代码修改。如果 Claude 已经修改了你的文件,这些修改不会被自动撤销。你需要手动用 git checkoutgit reset 恢复文件。

建议:在进行可能大幅修改代码的操作前,先提交当前工作(git commitgit stash),这样即使出了问题也能快速恢复。

技巧 2:@ 引用文件 —— 精准指定上下文

Claude Code 虽然能自动读取项目文件,但显式地引用文件能让 AI 更准确地理解你的意图,也能避免 AI 读取不相关的文件浪费 Token。

基本用法:

与其模糊地说:

解释 src/utils.ts 这个文件

不如直接引用:

@src/utils.ts 解释这个文件

高级用法:

多文件对比分析:

@src/app.tsx @src/components/Header.tsx 这两个文件的关系是什么?

引用目录:

@src/components/ 总结一下这个目录下的所有组件

引用特定行(配合代码编辑器):

@src/utils.ts:45-60 解释这段代码的作用

使用技巧:

  1. Tab 补全:输入 @ 后按 Tab 键,Claude 会显示当前目录下的文件列表,可以用方向键选择
  2. 相对路径:支持相对路径引用,如 @./config.json@../shared/types.ts
  3. 模糊匹配:可以输入部分文件名,如 @utils 会匹配 src/utils.tssrc/utils/index.ts

技巧 3:! 执行命令 —— 终端集成

Claude Code 内置了终端命令执行能力,无需切换到另一个终端窗口就能运行命令。

基本用法:

!npm test           # 运行测试
!git status         # 查看 Git 状态
!ls -la             # 列出文件

实际应用场景:

场景:运行测试并分析失败原因

!npm test
# 测试失败后
分析一下测试失败的原因,并修复代码

场景:查看 Git 差异

!git diff
# 然后让 Claude 解释变更内容
总结一下这些变更的主要内容

场景:构建项目

!npm run build
# 如果构建失败
构建报错了,帮我修复

⚠️ 安全提示:

Claude Code 会询问是否执行某些敏感命令(如 rm -rfsudo 等)。这是保护机制,请谨慎确认。

技巧 4:/plan 先规划后编码 —— 复杂任务的正确打开方式

对于复杂的开发任务,直接开始编码往往效率低下。/plan 命令让 Claude 进入规划模式,先制定详细的实施计划,再一步步执行。

使用方式:

/plan
我想添加用户认证功能,请帮我制定实施计划

Claude 会做什么:

  1. 分析需求:理解你要实现的功能
  2. 评估现状:查看当前项目结构和技术栈
  3. 制定计划:分步骤列出需要做的事情
  4. 确认方案:与你讨论计划,根据反馈调整

示例输出:

📋 用户认证功能实施计划

阶段 1:数据库设计
- [ ] 创建 users 表(id, email, password_hash, created_at)
- [ ] 创建 sessions 表(id, user_id, expires_at)

阶段 2:后端 API
- [ ] POST /api/auth/register - 用户注册
- [ ] POST /api/auth/login - 用户登录
- [ ] POST /api/auth/logout - 用户登出
- [ ] GET /api/auth/me - 获取当前用户

阶段 3:前端集成
- [ ] 创建登录页面
- [ ] 创建注册页面
- [ ] 添加路由守卫

阶段 4:测试
- [ ] 编写单元测试
- [ ] 编写集成测试

你想从哪个阶段开始?或者需要调整计划?

最佳实践:

  • 对于超过 30 分钟的任务,先用 /plan
  • 计划制定后,可以逐阶段执行,每完成一个阶段检查一次
  • 如果需求变更,可以重新运行 /plan 调整计划

技巧 5:/init 自动生成配置 —— 快速初始化项目

/init 是 Claude Code 最强大的命令之一。它能自动扫描你的项目,理解技术栈和结构,然后生成一份完整的 CLAUDE.md 配置文件。

使用方式:

/init

Claude 会执行以下步骤:

  1. 扫描项目结构:识别框架、语言、构建工具
  2. 分析配置文件:读取 package.json、tsconfig.json 等
  3. 检查代码风格:了解命名规范、文件组织方式
  4. 生成 CLAUDE.md:创建包含项目信息的配置文件

生成的 CLAUDE.md 示例:

# My Project

## 技术栈
- 框架:Next.js 14 (App Router)
- 语言:TypeScript
- 样式:Tailwind CSS
- 状态管理:Zustand
- 数据库:Prisma + PostgreSQL

## 常用命令

\`\`\`bash
npm run dev      # 启动开发服务器
npm run build    # 生产构建
npm run test     # 运行测试
npx prisma migrate dev  # 数据库迁移
\`\`\`

## 代码规范
- 使用函数组件 + Hooks
- 文件命名:PascalCase(组件)、camelCase(工具函数)
- 提交规范:Conventional Commits

为什么这很重要:

CLAUDE.md 是 Claude Code 的"项目记忆"。每次启动时,Claude 会自动读取这个文件,了解项目背景。这意味着:

  • 你不需要每次都解释项目用什么框架
  • Claude 会知道你的代码规范和最佳实践
  • 团队协作时,新成员也能快速了解项目

建议:新项目初始化后,立即运行 /init,然后根据实际情况调整生成的配置。

技巧 6:/compact 压缩上下文 —— 节省 Token

Claude Code 的上下文窗口是有限的(通常 200K Token)。长对话会消耗大量 Token,不仅增加成本,还可能导致重要的早期信息被挤出上下文窗口。

使用方式:

/compact

工作原理:

/compact 会分析当前对话历史,提取关键信息(如已做出的决策、已生成的代码、已确认的需求),然后生成一份简洁的摘要。之后的对话基于这份摘要,而不是完整的历史记录。

什么时候使用:

  • 对话进行了 5-6 轮后
  • 感觉 Claude 开始"遗忘"之前的内容
  • 要切换到新的子任务,但想保留关键背景

使用建议:

# 长对话后压缩
/compact

# 压缩后继续工作
现在我们已经完成了用户模块,接下来做订单模块

技巧 7:/commit 自动提交 —— Git 工作流自动化

/commit 让 Git 提交变得 effortless。Claude 会自动查看变更,生成符合规范的提交信息。

使用方式:

bash
/commit

Claude 会做什么:

  1. 查看变更:运行 git diffgit status
  2. 分析变更内容:理解修改的目的和影响
  3. 生成提交信息:按照 Conventional Commits 规范
  4. 执行提交:运行 git commit

示例输出:

检测到以下变更:
- src/components/UserCard.tsx - 新增用户卡片组件
- src/types/user.ts - 添加 User 类型定义
- tests/UserCard.test.tsx - 添加单元测试

建议的提交信息:
feat(components): add UserCard component with type definitions and tests

是否执行提交?(y/n/e - 编辑信息)

进阶用法:

bash
# 自动提交,不询问
/commit --yes

# 生成提交信息但不执行
/commit --dry-run

技巧 8:Shift+Tab 自动接受 —— 提高流畅度

默认情况下,Claude 修改代码前会询问你的确认。这在学习阶段很有帮助,但熟悉后可能会觉得繁琐。Shift+Tab 开启自动接受模式,让工作流更流畅。

使用方式:

  • Shift+Tab → 进入自动接受模式
  • 再按 Shift+Tab → 退出自动接受模式

模式对比:

模式行为适用场景
默认模式每次修改都询问确认学习阶段、重要代码
自动接受直接应用修改熟悉后、快速迭代

⚠️ 注意事项:

  • 自动接受模式下,Claude 会直接修改文件,没有二次确认
  • 建议配合 Git 使用,这样即使出问题也能回滚
  • 对于敏感操作(如删除文件、修改配置),Claude 仍会询问

技巧 9:Ctrl+C 取消操作 —— 紧急制动

当 Claude 正在执行一个长时间运行的任务,或者你意识到给错了指令时,Ctrl+C 是你的"紧急制动"按钮。

使用方式:

  • 按一次 Ctrl+C → 取消当前正在执行的操作
  • 按两次 Ctrl+C → 完全退出 Claude Code

使用场景:

  • Claude 正在运行一个耗时的命令,你想中断
  • Claude 开始生成大量不相关的代码
  • 你意识到给错了指令,想立即停止

与双击 Esc 的区别:

  • Ctrl+C:停止正在进行的操作(如运行命令、生成代码)
  • 双击 Esc:回退对话状态(撤销上一轮对话)

技巧 10:/context 查看上下文使用 —— 优化 Token 消耗

/context 显示当前会话的上下文使用情况,帮助你了解 Token 消耗,优化使用成本。

使用方式:

/context

输出示例:

📊 上下文使用情况

Token 使用:45,230 / 200,000 (22.6%)
文件引用:12 个文件
对话轮数:8 轮

最消耗 Token 的文件:
1. src/api/users.ts (3,420 tokens)
2. node_modules/@types/react/index.d.ts (2,890 tokens)
3. src/components/Dashboard.tsx (1,560 tokens)

建议:
- 当前使用率健康,无需压缩
- 如需减少消耗,可在 .claudeignore 中添加 node_modules

如何利用这个信息:

  1. 识别大文件:如果某个文件消耗了大量 Token,考虑是否真的需要它
  2. 优化 .claudeignore:将不相关的文件(如 node_modules、构建产物)加入忽略列表
  3. 决定何时压缩:当使用率超过 70% 时,考虑使用 /compact

技巧 11:/resume 恢复会话 —— 切换多任务对话

当你在处理多个任务时,可能会开启多段对话。/resume 能让你在当前聊天中快速切换回之前的会话,而不需要退出重新启动。

使用方式:

/resume

工作原理:

Claude Code 会自动记录你之前的对话会话。当你使用 /resume 时,它会切换回上一段会话的上下文,保留之前的所有讨论内容和状态。

使用场景:

场景 A:多任务并行处理

# 任务 1:修复 bug
claude> 修复登录页面的验证问题
# ... 进行了一段对话...

# 任务 2:添加新功能(新开一段会话)
claude> 添加用户注册功能
# ... 进行了另一段对话...

# 切换回任务 1
claude> /resume
# 继续之前的 bug 修复工作

场景 B:临时查询后返回

claude> 解释一下这个算法
# ... 讨论算法...

claude> /resume
# 自动切换回之前的代码开发工作

场景 C:对话中断后继续

claude> 继续之前的工作
# 如果你之前中断了某个任务,可以用 /resume 返回

与相关命令的对比:

命令作用使用场景
/resume在当前聊天中切换回上一段会话多任务并行,需要来回切换
claude -c继续最近的一次会话退出后重新连接同一会话
claude -r恢复上一段会话退出后恢复到之前的会话状态
双击 Esc回退到上一次对话状态撤销最近一轮对话

使用建议:

  1. 多任务管理:当你需要在多个任务之间切换时,使用 /resume 比重新描述上下文更高效
  2. 会话记忆:每段会话都有独立的上下文,/resume 能帮你保留这些上下文
  3. 配合 /compact:在长会话中,可以先 /compact 压缩,再 /resume 切换,保持上下文清晰

核心配置

合理的配置能让 Claude Code 更好地适应你的项目和团队。本节介绍配置文件的作用、优先级以及如何针对不同的使用场景进行优化。

配置文件位置与优先级

Claude Code 采用分层配置策略,不同级别的配置有不同的作用范围和优先级。理解这个机制,能让你更灵活地管理配置。

配置优先级(从高到低):

位置作用域用途是否提交 Git
.claude/settings.local.json项目本地个人偏好设置❌ 否
.claude/settings.json项目共享团队统一配置✅ 是
~/.claude/settings.json全局个人默认配置❌ 否

配置合并规则:

  • 高优先级的配置会覆盖低优先级的相同配置项
  • 不冲突的配置项会合并生效
  • 项目级配置优先于全局配置,个人本地配置优先于共享配置

实际应用场景:

场景 1:团队项目

~/.claude/settings.json          # 你的个人默认编辑器设置
.claude/settings.json            # 团队统一的代码规范、权限配置
.claude/settings.local.json      # 你自己的调试偏好、主题设置

场景 2:个人项目

~/.claude/settings.json          # 全局默认配置
.claude/settings.json            # 项目特定配置(如特殊的权限规则)

CLAUDE.md - 项目记忆

CLAUDE.md 是 Claude Code 最重要的配置文件,它相当于项目的"说明书"。每次启动 Claude Code 时,它会自动读取当前目录下的 CLAUDE.md,了解项目背景、技术栈和规范。

为什么 CLAUDE.md 如此重要?

想象这样一个场景:你加入一个新项目,需要了解技术栈、代码规范、常用命令。通常你要花几个小时阅读文档、看代码、问同事。而有了 CLAUDE.md,Claude Code 在启动时就知道了所有这些信息,你可以立即开始高效协作。

最小可用模板:

# [项目名称]

## 技术栈
- 框架:React 18 + TypeScript
- 状态管理:Zustand
- 样式方案:Tailwind CSS
- 构建工具:Vite

## 常用命令

\`\`\`bash
npm run dev      # 启动开发服务器(端口 5173)
npm run test     # 运行单元测试
npm run build    # 生产构建
npm run lint     # 代码检查
\`\`\`

## 代码规范
- 组件使用函数组件 + Hooks
- 文件命名:PascalCase(组件)、camelCase(工具函数)
- Git 提交使用 Conventional Commits 规范
- 所有 API 调用必须经过统一的 request 封装

完整模板(推荐):

# [项目名称]

## 项目概述
一句话描述项目的主要功能和目标用户。

## 技术栈
### 前端
- 框架:React 18 + TypeScript
- 路由:React Router v6
- 状态:Zustand + React Query
- 样式:Tailwind CSS + Headless UI
- 构建:Vite

### 后端(如适用)
- 运行时:Node.js + Express
- 数据库:PostgreSQL + Prisma
- 认证:JWT + bcrypt

## 项目结构

\`\`\`
src/
├── components/      # 可复用组件
├── pages/           # 页面组件
├── hooks/           # 自定义 Hooks
├── lib/             # 工具函数
├── types/           # TypeScript 类型
└── api/             # API 调用
\`\`\`

## 常用命令

\`\`\`bash
# 开发
npm run dev              # 启动开发服务器
npm run dev:mock         # 使用 Mock 数据开发

# 测试
npm run test             # 运行所有测试
npm run test:watch       # 监听模式运行测试
npm run test:coverage    # 生成测试覆盖率报告

# 代码质量
npm run lint             # ESLint 检查
npm run lint:fix         # 自动修复 ESLint 问题
npm run format           # Prettier 格式化
npm run typecheck        # TypeScript 类型检查

# 构建
npm run build            # 生产构建
npm run preview          # 预览生产构建
\`\`\`

## 开发规范
### 代码风格
- 使用函数组件,避免类组件
- 优先使用自定义 Hooks 封装逻辑
- 组件 Props 必须定义 TypeScript 接口

### Git 工作流
- 分支命名:`feature/`、`fix/`、`refactor/` 前缀
- 提交信息遵循 Conventional Commits
- PR 必须通过 CI 检查和 Code Review

### 性能要求
- 组件懒加载,减少首屏时间
- 图片使用 WebP 格式,开启懒加载
- API 响应时间控制在 200ms 以内

## 环境变量

\`\`\`bash
# .env.local
VITE_API_BASE_URL=http://localhost:3000
VITE_APP_NAME=MyApp
\`\`\`

## 常见问题

### 开发服务器启动失败?

检查端口 5173 是否被占用,或尝试 `npm run dev -- --port 3000`

### 类型错误?

运行 `npm run typecheck` 查看详细错误信息

快速生成 CLAUDE.md:

如果你已经有一个项目,但还没有 CLAUDE.md,运行 /init 命令让 Claude 自动生成:

bash
claude
# 在 Claude Code 中输入
/init

Claude 会分析你的项目结构、package.json、现有代码,生成一份符合实际情况的 CLAUDE.md。生成后建议人工检查并根据需要调整。

.claudeignore - 节省 Token

.claudeignore 文件告诉 Claude Code 哪些文件不应该被读取到上下文中。合理配置可以显著减少 Token 消耗(通常能减少 40-60%),同时提高响应速度。

为什么需要 .claudeignore?

Claude Code 在理解项目时,会尝试读取相关文件。但有些文件对理解项目没有帮助,反而会:

  • 消耗大量 Token(如 node_modules 中的类型定义文件)
  • 引入噪音(如日志文件、构建产物)
  • 包含敏感信息(如 .env 文件)

推荐配置:

# ===== 依赖目录 =====
# 这些目录包含大量第三方代码,不需要 Claude 读取
node_modules/
.pnp/
.pnp.js

# ===== 构建产物 =====
# 生成的文件,不包含源代码信息
dist/
build/
.next/
out/
*.tsbuildinfo

# ===== 日志文件 =====
# 运行时生成的日志,对理解项目无帮助
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# ===== 测试相关 =====
# 测试覆盖率报告、coverage 数据
coverage/
.nyc_output/

# ===== 编辑器/IDE =====
# 编辑器配置和临时文件
.vscode/*
!.vscode/extensions.json
.idea/
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# ===== 系统文件 =====
# macOS、Windows 系统文件
.DS_Store
Thumbs.db

# ===== 环境变量 =====
# 包含敏感信息,不应被读取
.env
.env.local
.env.*.local

# ===== 大型资源文件 =====
# 图片、视频等二进制文件
*.png
*.jpg
*.jpeg
*.gif
*.svg
*.ico
*.mp4
*.webm

# ===== 锁文件(可选) =====
# 如果你不需要 Claude 分析依赖版本,可以忽略
# package-lock.json
# yarn.lock
# pnpm-lock.yaml

配置技巧:

  1. 从最小配置开始:先忽略 node_modules 和构建产物,观察 Token 消耗
  2. 根据项目调整:如果是图片密集型项目,添加图片格式忽略;如果是文档项目,保留 Markdown 文件
  3. 定期优化:使用 /context 查看哪些文件消耗了最多 Token,考虑是否加入忽略列表

权限配置

Claude Code 默认会在执行敏感操作前询问确认。通过 settings.json 中的 permissions 配置,你可以精细控制哪些操作可以自动执行,哪些需要确认,哪些完全禁止。

权限配置结构:

json
{
  "permissions": {
    "allow": [
      // 自动允许,不询问
    ],
    "ask": [
      // 执行前询问确认
    ],
    "deny": [
      // 完全禁止
    ]
  }
}

配置语法:

权限规则使用 操作类型(匹配模式) 的格式:

操作类型说明示例
Bash执行终端命令Bash(git status)
Edit编辑文件Edit(src/**/*.ts)
Read读取文件Read(README.md)
Write创建新文件Write(src/components/*.tsx)

匹配模式支持通配符:

  • * 匹配任意字符(不包括 /
  • ** 匹配任意路径
  • ? 匹配单个字符

实际配置示例:

json
{
  "permissions": {
    "allow": [
      "Bash(git status)",
      "Bash(git log:*)",
      "Bash(git diff:*)",
      "Bash(npm test:*)",
      "Bash(npm run lint:*)",
      "Edit(src/**/*.{ts,tsx})",
      "Edit(tests/**/*.test.ts)",
      "Read(src/**/*.ts)",
      "Write(src/components/*.tsx)"
    ],
    "ask": [
      "Bash(git commit:*)",
      "Bash(git push:*)",
      "Bash(git pull:*)",
      "Bash(npm install:*)",
      "Bash(npm run build)",
      "Edit(package.json)",
      "Edit(tsconfig.json)",
      "Read(.env)",
      "Read(config/secrets.*)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(sudo:*)",
      "Bash(curl * | sh)",
      "Bash(wget * | sh)",
      "Edit(.git/*)",
      "Write(/etc/*)",
      "Read(/etc/passwd)"
    ]
  }
}

配置建议:

  1. 开发阶段:设置较宽松的权限,提高迭代速度
  2. 生产环境:收紧权限,特别是涉及部署、敏感数据的操作
  3. 团队协作:将基础权限放在 settings.json(共享),个人调整放在 settings.local.json

Rules 规则目录

对于大型项目,单个 CLAUDE.md 可能变得臃肿且难以维护。Claude Code 支持使用 Rules 规则目录 进行模块化管理,将不同方面的规范拆分成独立的文件。

目录结构:

.claude/
├── settings.json          # 主配置文件
├── CLAUDE.md              # 项目概述(仍需要)
└── rules/                 # 规则目录
    ├── 00-security.md     # 安全规则(全局)
    ├── 01-coding-style.md # 编码风格(全局)
    ├── 10-api.md          # API 开发规范
    ├── 11-frontend.md     # 前端开发规范
    ├── 12-backend.md      # 后端开发规范
    └── 20-testing.md      # 测试规范

文件命名建议:

使用数字前缀控制加载顺序(如 00-01-),确保基础规则先加载,特定规则后加载。

规则文件格式:

规则文件支持 YAML frontmatter,用于控制规则的适用范围:

markdown
---
# 可选:指定规则适用的文件路径
globs:
  - "src/api/**/*.ts"
  - "src/services/**/*.ts"

# 可选:指定规则适用的命令
commands:
  - "generate api"
  - "create endpoint"

# 可选:规则优先级(数字越小优先级越高)
priority: 10
---

# API 开发规范

## 路由设计
- RESTful 风格,使用名词复数
- 版本控制:/api/v1/users
- 嵌套资源:/api/v1/users/123/orders

## 请求/响应格式
- 统一使用 JSON
- 错误响应必须包含 code 和 message
- 分页响应使用 { data, pagination } 结构

## 安全要求
- 所有端点必须验证认证(除公开端点)
- 敏感操作需要二次确认
- 实现速率限制防止滥用

规则继承与覆盖:

  • 全局规则(无 frontmatter 或 globs: *)适用于所有文件
  • 特定路径规则只适用于匹配的文件
  • 当多个规则冲突时,优先级高的规则生效
  • 特定规则可以覆盖全局规则

使用场景示例:

场景 1:前后端分离项目

.claude/rules/
├── 00-general.md          # 通用规范(提交信息、命名约定)
├── 10-backend.md          # 后端规范(NestJS 特定)
├── 11-frontend.md         # 前端规范(React 特定)
└── 20-database.md         # 数据库规范(Prisma 特定)

场景 2:微服务架构

.claude/rules/
├── 00-global/             # 全局规则
│   ├── security.md
│   └── logging.md
├── 10-services/           # 服务特定规则
│   ├── user-service.md
│   ├── order-service.md
│   └── payment-service.md
└── 20-shared/             # 共享组件规则
    ├── shared-lib.md
    └── common-utils.md

迁移建议:

如果你已经有一个庞大的 CLAUDE.md,可以按以下步骤迁移到 Rules 目录:

  1. 创建 .claude/rules/ 目录
  2. CLAUDE.md 中的内容按主题拆分
  3. 为每个规则文件添加适当的 frontmatter
  4. 保留 CLAUDE.md 作为项目概述,移除详细规范
  5. 测试确保规则正确加载

核心操作指令

Claude Code 提供了一套丰富的操作指令,让你能够高效地与 AI 协作。这些指令分为几类:Slash 命令(内置功能)、符号系统(快捷操作)、以及自然语言指令(日常开发)。

Slash 命令速查

Slash 命令是 Claude Code 的内置功能,以 / 开头。它们提供标准化的操作,如初始化项目、管理配置、查看状态等。

命令功能使用场景
/help显示所有命令忘记命令时快速查看
/init初始化项目,生成 CLAUDE.md新项目或添加配置
/plan进入规划模式复杂任务前先制定计划
/clear清除对话历史上下文混乱时重新开始
/compact压缩上下文长对话后节省 Token
/commit创建 Git 提交快速提交变更
/review审查未提交的变更提交前检查代码
/context查看上下文使用优化 Token 消耗
/cost查看本次会话费用关注使用成本
/config打开配置面板修改设置
/permissions权限管理调整操作权限
/model切换 AI 模型选择不同模型

命令组合示例:

bash
# 完整开发工作流
/plan                    # 1. 制定计划
# ... 执行开发 ...
/review                  # 2. 审查变更
/commit                  # 3. 提交代码
/cost                    # 4. 查看成本

符号系统

符号系统是 Claude Code 的快捷操作方式,通过特殊符号快速触发特定功能。

符号名称用途示例
/Slash 命令执行内置操作/help, /plan
@At 引用引用文件/目录@src/app.tsx
!Bang 模式执行终端命令!npm test
&后台运行后台执行任务&npm run dev

符号组合技巧:

bash
# 组合使用多个符号
@src/utils.ts !npm test
# 解释:读取 utils.ts,然后运行测试

@src/components/ @src/pages/ 比较这两个目录的结构
# 解释:同时引用两个目录进行对比

!git diff @src/app.tsx 解释这些变更
# 解释:查看 Git 差异,然后让 Claude 解释特定文件的变更

文件操作

文件操作是日常开发中最常用的功能。Claude Code 支持读取、编辑、创建、删除等各种文件操作。

读取文件:

bash
# 基本读取
@src/app.tsx 解释这个文件

# 读取并分析
@src/utils/helpers.ts 找出潜在的性能问题

# 对比读取
@src/components/OldButton.tsx @src/components/NewButton.tsx 对比这两个组件的差异

编辑文件:

bash
# 简单编辑
 src/utils/date.ts formatDate 函数改为支持中文格式

# 复杂编辑
@src/api/users.ts 重构这个文件:
1. 将重复的错误处理逻辑抽取到统一的 handleError 函数
2. 使用 async/await 替代 Promise
3. 添加 JSDoc 注释

# 批量编辑
 src/components/ 下所有类组件转换为函数组件

创建文件:

bash
# 创建单个文件
创建 src/components/UserCard.tsx,实现一个展示用户信息的卡片组件

# 创建多个相关文件
创建用户模块:
1. src/types/user.ts - 定义 User 接口
2. src/api/users.ts - 用户相关 API 调用
3. src/components/UserCard.tsx - 用户卡片组件
4. src/hooks/useUser.ts - 获取用户数据的 Hook

删除文件:

bash
# 删除前确认
删除 src/old-component.tsx(这个组件已经不再使用)

# Claude 会询问确认,并可能建议你检查是否有其他文件引用它

Git 操作

Claude Code 深度集成了 Git,让你可以在不离开终端的情况下完成完整的版本控制工作流。

查看状态:

bash
# 查看 Git 状态
显示 Git 状态和未提交的变更

# 查看详细变更
!git diff
解释 src/api/users.ts 的变更内容

创建提交:

bash
# 自动提交
/commit

# 提交前审查
/review
/commit

分支操作:

bash
# 创建功能分支
!git checkout -b feature/user-authentication

# 完成开发后
/commit
!git push -u origin feature/user-authentication

完整 Git 工作流示例:

bash
# 1. 开始新功能
!git checkout -b feature/payment-integration

# 2. 开发功能(Claude 协助编码)
创建支付模块,包含支付宝和微信支付

# 3. 运行测试
!npm test

# 4. 审查变更
/review

# 5. 提交代码
/commit

# 6. 推送到远程
!git push -u origin feature/payment-integration

# 7. 创建 PR(可选,配合 GitHub CLI)
!gh pr create --title "feat: add payment integration" --body "支持支付宝和微信支付"

代码操作

代码操作是 Claude Code 的核心能力,包括生成、解释、重构、优化等。

生成代码:

bash
# 生成组件
创建一个 React Hook 管理用户认证状态,包含登录、登出、权限检查功能

# 生成工具函数
创建一个日期格式化工具函数,支持相对时间(如"2小时前"

# 生成完整模块
创建订单模块,包含:
- 订单列表页面
- 订单详情页面
- 创建订单 API
- 订单状态管理

解释代码:

bash
# 逐行解释
逐行解释 src/algorithms/quicksort.ts

# 高层次解释
@src/services/payment.ts 解释这个模块的架构设计

# 解释复杂逻辑
解释 src/utils/dataTransformer.ts 中的 reduce 操作在做什么

重构代码:

bash
# 架构重构
 src/components/ 的类组件转换为函数组件

# 性能重构
优化 src/App.tsx 的渲染性能,减少不必要的重渲染

# 代码清理
@src/utils/helpers.ts 重构这个文件:
1. 删除未使用的函数
2. 将重复逻辑抽取为通用函数
3. 添加类型定义
4. 优化函数命名

调试代码:

bash
# 分析错误
运行 npm test 失败了,分析错误原因并修复

# 性能分析
@src/components/DataTable.tsx 这个组件渲染很慢,找出性能瓶颈

# 日志分析
!cat logs/error.log
分析这些错误日志,找出根本原因

测试操作

测试是保证代码质量的重要手段。Claude Code 可以协助你生成测试、运行测试、分析测试结果。

生成测试:

bash
# 生成单元测试
 src/utils/math.ts 生成单元测试,覆盖所有边界情况

# 生成组件测试
 src/components/UserForm.tsx 生成 React Testing Library 测试

# 生成集成测试
创建用户注册流程的集成测试,覆盖从表单提交到数据库写入的完整流程

运行和调试测试:

bash
# 运行测试
!npm test

# 调试失败测试
分析测试失败原因并修复
@tests/auth.test.ts

# 查看测试覆盖率
!npm run test:coverage
哪些代码没有被测试覆盖?

测试策略建议:

bash
# 为新功能添加测试
我添加了用户认证功能,请:
1. auth.service.ts 生成单元测试
2. LoginForm 组件生成组件测试
3. 运行所有测试确保通过

指令组合与链式操作

高效的 Claude Code 使用方式是将多个指令组合起来,形成完整的工作流。

场景 1:Bug 修复工作流

bash
# 1. 查看问题
!npm test
测试报错了,分析一下

# 2. 定位问题
@src/utils/validation.ts 问题出在这个文件吗?

# 3. 修复问题
修复 validation.ts 中的 isEmail 函数,使其正确处理包含 + 的邮箱地址

# 4. 验证修复
!npm test

# 5. 提交修复
/commit

场景 2:代码审查工作流

bash
# 1. 查看变更
!git diff --stat
有哪些文件被修改了?

# 2. 详细审查
@src/components/ 审查这些组件的变更

# 3. 提出改进建议
基于审查结果,有哪些可以改进的地方?

# 4. 实施改进
优化 UserList 组件的性能

# 5. 最终审查
/review

场景 3:新功能开发工作流

bash
# 1. 制定计划
/plan
我要添加购物车功能

# 2. 创建分支
!git checkout -b feature/shopping-cart

# 3. 开发功能
按照计划逐步实现

# 4. 添加测试
为购物车模块生成测试

# 5. 运行测试
!npm test

# 6. 代码审查
/review

# 7. 提交代码
/commit
!git push

常见问题

在使用 Claude Code 的过程中,你可能会遇到各种问题。本节整理了最常见的问题及其解决方案。

Token 消耗太快?

Token 消耗过快是使用 Claude Code 时最常见的问题。以下是优化 Token 使用的完整策略。

问题诊断:

首先,使用 /context 命令查看当前的 Token 使用情况:

/context

关注以下指标:

  • Token 使用率:如果超过 70%,需要考虑压缩上下文
  • 文件引用数量:引用的文件越多,Token 消耗越大
  • 大文件:查看哪些文件占用了最多 Token

优化策略:

1. 完善 .claudeignore 配置

确保你的 .claudeignore 文件包含了所有不需要的文件:

# 必须忽略的
node_modules/
dist/
build/
*.log
.env

# 根据项目类型添加
# React 项目
.next/
out/

# Vue 项目
.nuxt/
.output/

# 通用
.vscode/
.idea/
coverage/
*.min.js
*.bundle.js

2. 定期压缩上下文

长对话会累积大量 Token。建议每 5-6 轮对话后使用 /compact

# 长对话后
/compact

# 继续工作
现在我们来实现订单模块...

3. 精准引用文件

不要引用整个目录,而是引用具体需要的文件:

bash
# 不推荐(会读取整个目录)
@src/ 解释这些代码

# 推荐(只读取需要的文件)
@src/utils/auth.ts @src/components/Login.tsx 解释登录流程

4. 避免读取大文件

如果 /context 显示某个文件占用了大量 Token,考虑:

  • 是否真的需要这个文件?
  • 能否只引用其中的部分代码?
  • 能否将大文件拆分成小模块?

Claude 不理解项目?

当 Claude 的回答不够准确,或者频繁询问项目的基本信息时,说明它缺乏足够的项目背景知识。

解决方案:

1. 生成 CLAUDE.md

运行 /init 让 Claude 自动生成项目配置文件:

bash
/init

生成后,检查并完善以下内容:

  • 项目概述是否准确?
  • 技术栈是否完整?
  • 常用命令是否正确?
  • 代码规范是否明确?

2. 手动编辑 CLAUDE.md

如果自动生成的配置不够详细,手动添加:

markdown
## 项目特定信息

### 架构决策
- 为什么选择 X 而不是 Y?
- 核心设计模式是什么?

### 常见陷阱
- 使用 useEffect 时要注意...
- 数据库查询必须...

### 第三方集成
- 支付使用 Stripe
- 邮件使用 SendGrid
- 文件存储使用 AWS S3

3. 使用 Rules 目录

大型项目可以使用 Rules 目录组织规范:

.claude/rules/
├── 00-architecture.md    # 架构概述
├── 01-coding-style.md    # 代码风格
├── 10-frontend.md        # 前端规范
├── 11-backend.md         # 后端规范
└── 20-testing.md         # 测试规范

4. 即时补充上下文

对于特定任务,可以在指令中补充背景:

我们使用自定义的 useAuth Hook 处理认证,
它返回 { user, login, logout, isLoading }。
请基于这个 Hook 实现用户菜单组件。

如何回退操作?

Claude Code 提供了多种回退机制,适用于不同的场景。

场景 1:回退对话状态

如果只是说错了话,或者对 Claude 的回答不满意:

双击 Esc  →  回退到上一轮对话
三击 Esc  →  清除所有对话历史

⚠️ 注意:这只会回退对话状态,不会撤销文件修改。

场景 2:撤销文件修改

如果 Claude 已经修改了文件,你需要手动撤销:

bash
# 查看变更
!git status
!git diff

# 撤销特定文件
git checkout -- src/utils/helpers.ts

# 撤销所有变更
git checkout -- .

# 如果已经提交了
# 软回退(保留变更)
git reset --soft HEAD~1

# 硬回退(丢弃变更)
git reset --hard HEAD~1

场景 3:使用 Git 工作流预防

最佳实践是在使用 Claude Code 前提交当前工作:

bash
# 开始前保存当前状态
git add .
git commit -m "WIP: before Claude Code session"
# 或使用 git stash
git stash push -m "before claude"

# 使用 Claude Code 进行开发...

# 如果结果不满意,完全回退
git reset --hard HEAD~1
# 或
git stash pop

权限提示太多?

频繁的权限确认会影响开发效率。通过合理配置权限,可以让工作流更流畅。

理解权限系统:

Claude Code 的权限分为三级:

  • allow:自动允许,不询问
  • ask:执行前询问确认
  • deny:完全禁止

优化配置:

编辑 .claude/settings.json

json
{
  "permissions": {
    "allow": [
      // Git 只读操作
      "Bash(git status)",
      "Bash(git log:*)",
      "Bash(git diff:*)",
      "Bash(git branch)",
      
      // 测试和检查
      "Bash(npm test:*)",
      "Bash(npm run lint:*)",
      "Bash(npm run typecheck)",
      
      // 开发服务器
      "Bash(npm run dev:*)",
      
      // 源代码编辑
      "Edit(src/**/*.{ts,tsx})",
      "Edit(tests/**/*.test.ts)",
      "Write(src/**/*.ts)"
    ],
    "ask": [
      // Git 写操作
      "Bash(git commit:*)",
      "Bash(git push:*)",
      "Bash(git pull:*)",
      
      // 包管理
      "Bash(npm install:*)",
      "Bash(npm uninstall:*)",
      
      // 构建和部署
      "Bash(npm run build)",
      "Bash(npm run deploy:*)",
      
      // 配置文件修改
      "Edit(package.json)",
      "Edit(tsconfig.json)",
      
      // 敏感文件读取
      "Read(.env)",
      "Read(config/secrets.*)"
    ],
    "deny": [
      // 危险命令
      "Bash(rm -rf:*)",
      "Bash(sudo:*)",
      "Bash(curl * | sh)",
      "Bash(wget * | sh)",
      
      // 系统文件
      "Edit(/etc/*)",
      "Write(/usr/*)",
      
      // Git 目录
      "Edit(.git/*)"
    ]
  }
}

渐进式权限策略:

  • 学习阶段:保持默认设置,了解 Claude 会执行哪些操作
  • 熟悉阶段:将常用的安全操作(如 git status、npm test)加入 allow
  • 高效阶段:根据项目特点,配置更精细的权限规则

国内如何使用?

由于网络原因,中国用户可能无法直接访问 Anthropic 的官方服务。以下是几种解决方案。

方案 1:使用 API 代理服务

许多云服务商提供兼容 Anthropic API 的代理服务:

bash
# 设置环境变量
export ANTHROPIC_BASE_URL="https://your-api-proxy.com/v1"
export ANTHROPIC_API_KEY="your-api-key"

# 启动 Claude Code
claude

方案 2:使用第三方 Claude Code 兼容工具

一些国内服务商提供兼容 Claude Code 的工具:

bash
# 安装兼容版本
npm install -g @some-provider/claude-code

# 配置 API 密钥
claude config set api.key your-api-key
claude config set api.baseUrl https://api.some-provider.com

方案 3:使用其他 AI 编程工具

如果 Claude Code 无法使用,可以考虑以下替代方案:

工具特点适用场景
Cursor基于 VS Code,功能完善需要完整 IDE 体验
GitHub Copilot代码补全能力强主要需要代码补全
通义灵码国产,国内访问稳定国内开发环境
Codeium免费额度多预算有限

方案 4:让 AI Agent 帮你配置

如果你不确定如何配置,可以让 AI Agent 协助:

我要使用 Claude Code,但国内无法直接访问。
我购买了 XXX 服务商的 API,
API 地址是 https://api.xxx.com,
密钥是 sk-xxx。

请帮我配置好环境变量,确保 Claude Code 能正常使用。

常见问题:

  • Q: 配置后仍然无法连接?

    • A: 检查 API 地址是否正确,确认是否包含 /v1 路径
    • A: 检查 API 密钥是否有效,是否已充值
    • A: 检查本地网络是否需要代理
  • Q: 响应速度很慢?

    • A: 选择地理位置更近的服务商
    • A: 使用 Coding Plan 而非通用 API
    • A: 考虑使用 /compact 减少 Token 消耗
  • Q: 某些功能无法使用?

    • A: 部分第三方服务可能不完全兼容所有 Claude Code 功能
    • A: 检查服务商的文档,了解支持的功能范围

参考资源