ClaudeCode 学习记录

53 阅读16分钟

ClaudeCode 学习记录


一、模式切换

Shift+Tab(官方文档是这么写的,但我的是alt+m) 键循环切换三种模式:

模式说明
默认模式Claude 在文件编辑和 shell 命令之前都会询问确认
Accept Edits平常的代码修改自动执行,只有涉及 shell 命令时才需要手动批准
Plan Mode不动手执行,只生成计划方案

二、特殊符号快捷操作

符号名称用法示例
!Shell 命令输入 ! 后面接命令,直接执行对应的 shell 命令!dir → 直接执行 dir 命令,显示当前目录下的文件
@引用文件输入 @ 后接路径,会列出该路径下的文件和文件夹供选择已知路径 x1/x2/x3,输入 @x1 → 列出 x1 目录下的文件和文件夹
&备注约束在一段要求之后追加 & 加约束条件,作为补充说明写了一大堆要求后输入 & 用英语回答

三、命令参考

会话与对话管理

命令说明
/init使用 CLAUDE.md 指南初始化项目。设置 CLAUDE_CODE_NEW_INIT=1 获得交互式流程
/clear [name]启动新对话,之前的对话在 /resume 中保持可用。别名:/reset/new
/resume [session]按 ID 或名称恢复对话,或打开会话选择器。别名:/continue
/compact [instructions]通过总结对话来释放上下文,可传递焦点说明
/recap按需生成当前会话的单行摘要
/branch [name]创建当前对话的分支,可用 /resume 返回。别名:/fork
/rewind将对话和/或代码倒回到上一个点。别名:/checkpoint/undo
/rename [name]重命名当前会话,不传名称则自动生成
/export [filename]将当前对话导出为纯文本
/btw <question>提出快速附加问题,不添加到对话中

项目与环境

命令说明
/add-dir <path>为当前会话添加工作目录。.claude/ 配置不会从添加的目录中发现
/diff交互式差异查看器,显示未提交更改和每轮差异
/context [all]将当前上下文使用情况可视化为彩色网格,传递 all 展开详情
/doctor诊断并验证 Claude Code 安装和设置。按 f 让 Claude 修复问题
/status显示版本、模型、账户和连接性状态
/tasks列出并管理后台任务。别名:/bashes

模型与权限

命令说明
/model [model]选择或更改 AI 模型,可调整工作量级别
`/effort [levelauto]`设置工作量级别:low/medium/high/xhigh/maxauto 重置为默认
/permissions管理工具权限的允许、询问和拒绝规则。别名:/allowed-tools
/sandbox切换沙箱模式,仅在支持的平台上可用
`/fast [onoff]`切换快速模式
/extra-usage配置额外使用量,达到速率限制时继续工作

记忆与配置

命令说明
/memory编辑 CLAUDE.md 内存文件,启用/禁用自动记忆,查看自动记忆条目
/config打开设置界面(主题、模型、输出样式等)。别名:/settings
/skills列出可用 skills。按 t 按 token 排序,按 Space 隐藏 skill
/hooks查看工具事件的 hook 配置
/agents管理 agent 配置(详见「十、Subagents 实操指南」)
/plugin管理 Claude Code plugins
/mcp管理 MCP server 连接和 OAuth 身份验证

成本与统计

命令说明
/usage显示会话成本、计划使用限制和活动统计。别名:/cost/stats

PR 与代码审查

命令说明
/review [PR]在当前会话中本地审阅 pull request
/ultrareview [PR]在云沙箱中运行多 agent 深度代码审查。Pro/Max 含 3 次免费
/autofix-pr [prompt]监视当前分支 PR,CI 失败或审阅者评论时自动推送修复。需要 gh CLI
/security-review分析待处理更改的安全漏洞(注入、认证问题、数据泄露等)

Skill 命令(高级功能模块)

命令说明
/batch <instruction>在整个代码库中并行编排大规模更改,分解为独立单元,在隔离 worktree 中生成后台 agent 并开 PR
/loop [interval] [prompt]重复运行提示。省略间隔自动调速,省略提示运行自主维护检查。别名:/proactive
/simplify [focus]审阅最近更改的文件,查找代码重用、质量和效率问题并修复
/debug [description]为当前会话启用调试日志并排查问题
`/claude-api [migratemanaged-agents-onboard]`加载 Claude API 参考资料。migrate 升级 API 代码到新模型,managed-agents-onboard 创建新 Managed Agent
/fewer-permission-prompts扫描历史记录,为常用只读操作添加允许列表,减少权限提示

规划与远程

命令说明
/plan [description]直接进入 Plan Mode,可传描述立即开始任务
/ultraplan <prompt>在浏览器中审阅计划,然后远程执行或发送回终端
/schedule [description]创建/更新/列出/运行 routines(在 Anthropic 云基础设施上执行)。别名:/routines

远程与网络

命令说明
/remote-control使会话可从 claude.ai 远程控制。别名:/rc
/teleport将网络版 Claude Code 会话拉入终端。别名:/tp
/desktop在 Claude Code Desktop 应用中继续会话(macOS/Windows)。别名:/app
/remote-env配置默认远程环境(网络会话用)
/web-setup用本地 gh CLI 凭证连接 GitHub 到网络版 Claude Code

外观与个性化

命令说明
/theme更改颜色主题,含 auto、色盲友好、自定义主题等
`/color [colordefault]`设置提示栏颜色(red/blue/green/yellow/purple/orange/pink/cyan)
/focus切换焦点视图,仅显示提示、工具摘要和最终响应
/statusline配置状态行内容
`/tui [defaultfullscreen]`设置终端 UI 渲染器,fullscreen 启用无闪烁渲染器

其他

命令说明
/login登录 Anthropic 账户
/logout登出 Anthropic 账户
/help显示帮助和可用命令
/exit退出 CLI。别名:/quit
/copy [N]复制第 N 个最新响应到剪贴板。有代码块时显示交互式选择器,按 w 写入文件
/keybindings打开或创建快捷键配置文件
/terminal-setup配置终端快捷键(Shift+Enter 等),仅在需要的终端中可见
`/voice [holdtapoff]`切换语音听写模式
/chrome配置 Claude in Chrome 设置
/ide管理 IDE 集成并显示状态
/insights分析 Claude Code 会话(项目领域、交互模式、摩擦点)
/install-github-app为存储库设置 Claude GitHub Actions 应用
/install-slack-app安装 Claude Slack 应用
/mobile下载 Claude 移动应用二维码。别名:/ios/android
/release-notes查看版本更新日志
/team-onboarding从使用历史生成团队入职指南
/powerup快速交互式课程发现 Claude Code 功能
/radio打开 Claude FM lo-fi 电台
/stickers订购 Claude Code 贴纸
/passes分享一周免费 Claude Code
/upgrade打开升级页面
/privacy-settings查看和更新隐私设置(Pro/Max 可用)
/heapdump导出 JavaScript 堆快照,诊断高内存使用
/feedback [report]提交反馈。别名:/bug
/setup-bedrock配置 Amazon Bedrock(需 CLAUDE_CODE_USE_BEDROCK=1
/setup-vertex配置 Google Vertex AI(需 CLAUDE_CODE_USE_VERTEX=1
/reload-plugins重新加载所有活跃 plugins,无需重启

已移除的命令:

命令说明
/pr-commentsv2.1.91 移除,改为直接问 Claude 查看 PR 评论
/vimv2.1.92 移除,用 /config → 编辑器模式切换

四、核心架构概念

1. CLAUDE.md — 持久上下文

详见「七、CLAUDE.md 深入」。

2. Skills — 可重用工作流

添加可重用的知识和可调用的工作流。

3. MCP — 外部服务连接

将 Claude 连接到外部服务和工具,类似调用外部接口。

4. Subagents — 隔离上下文子代理

隔离的上下文中运行自己的循环,处理完成后返回摘要给主 agent。

特点:

  • 有独立的执行环境,不占用主 agent 的上下文
  • 适合处理相对独立但又复杂麻烦的任务
  • 处理完后将精简结果返回主 agent
  • 解决大模型在复杂任务中因上下文过长导致的注意力分散、信息遗漏和性能下降问题

使用方式:

  • 需要预先手动创建 Subagents
  • 创建完成后,后续会话中符合触发条件的任务会自动调用对应的 Subagent,无需每次手动指定
  • 自动触发的效果高度依赖创建时的配置质量,并非所有场景都能 100% 可靠触发

5. Agent Teams — 多会话协作

协调多个独立会话,具有共享任务和点对点消息传递。

对比维度SubagentsAgent Teams
本质单会话内的任务委派,结果单向返回主对话多个物理独立的会话并行运行
通信方式单向汇报共享任务列表 + 点对点消息传递
协作模式传统单向汇报真正的网状协作

6. Hooks — 生命周期钩子

在生命周期事件上触发,可运行脚本、HTTP 请求、提示或 subagent。相当于钩子函数,100% 会触发

7. Plugin — 插件包

一个包含特定功能的压缩包,把 Skills + Agents + Commands + Hooks 打包在一起。核心价值:复用与分享


五、组件加载机制与上下文成本

功能何时加载加载内容上下文成本
CLAUDE.md会话开始整个文件内容每个请求
Skills会话开始 + 使用时启动时加载描述,使用时加载完整内容低(每个请求仅描述)*
MCP 服务器会话开始工具名称;完整 schema 按需加载低,直到使用工具
Subagents生成时具有指定 skills 的新鲜上下文与主会话隔离
Hooks触发时无(外部运行)零,除非 hook 返回额外上下文

*** Skills 的上下文成本说明:仅在使用时才加载完整内容,日常请求只消耗描述部分的 token。


六、典型使用场景

组件典型用途
CLAUDE.md处理项目约定(编码规范、架构约定等)
Skills处理工作流(可复用的标准操作流程)
MCP连接到数据库(接入外部服务/工具)
Hooks每次编辑后自动运行审查(代码检查、格式校验等)

七、CLAUDE.md 深入

1. 双记忆系统

Claude Code 有两个互补的记忆系统,两者都在每次对话开始时加载

记忆系统说明
CLAUDE.md 文件Markdown 文件,为 Claude 提供持久指令,每个会话开始时读取
Claude 自动记忆Claude 主动识别出"值得长期保留的更正和偏好",不是每一句对话都记

自动记忆记录的两类内容:

类型说明示例
更正你纠正了 Claude 的做法"不对,这里应该用 log.error,不要用 print"
偏好你告诉它你希望始终遵循的编码方式"以后所有数据库操作都用 LambdaWrapper 而不是 updateById"

2. 导入其他文件

CLAUDE.md 文件可使用 @path/to/import 语法导入其他文件。

规则:

  • 导入的文件在启动时展开并加载到上下文中,与引用它们的 CLAUDE.md 一起
  • 允许相对路径绝对路径
  • 相对路径相对于包含导入的文件解析,而不是工作目录
  • 导入的文件可以递归导入其他文件,最大深度为 5 跳

示例:

有关项目概述,请参阅 @README
有关此项目的可用 npm 命令,请参阅 @package.json

# 其他指令
- git 工作流 @docs/git-instructions.md

3. .claude/rules/ 目录组织规则

在项目的 .claude/rules/ 目录中放置 markdown 文件,每个文件应涵盖一个主题,使用描述性文件名。

规则:

  • 所有 .md 文件都被递归发现
  • 可将规则组织到子目录中(如 frontend/backend/
  • 规则在每个会话打开匹配文件时加载到上下文中
  • 对于不需要始终在上下文中的特定任务指令,改用 Skills(仅在调用时或 Claude 判定相关时加载)

目录结构示例:

your-project/
├── .claude/
│   ├── CLAUDE.md           # 主项目指令
│   └── rules/
│       ├── code-style.md   # 代码样式指南
│       ├── testing.md      # 测试约定
│       └── security.md     # 安全要求

4. 特定路径的规则(paths 字段)

规则可以使用 YAML frontmatter 中的 paths 字段范围限定到特定文件。这些条件规则仅在 Claude 处理与指定模式匹配的文件时适用。

没有 paths 字段的规则:无条件加载,适用于所有文件。

路径匹配模式:

模式匹配范围
**/*.ts任何目录中的所有 TypeScript 文件
src/**/*src/ 目录下的所有文件
*.md项目根目录中的 Markdown 文件
src/components/*.tsx特定目录中的 React 组件

示例: ```yaml

paths: - "src/api/**/*.java"


> 注意:路径范围规则在 Claude **读取与模式匹配的文件时触发**,而不是在每次工具使用时。

### 5. 用户级规则

`~/.claude/rules/` 中的个人规则适用于你机器上的**每个项目**。用于处理**非项目特定的偏好****加载顺序:** 用户级规则在项目规则**之前加载**,项目规则拥有**更高优先级**### 6. 自动记忆配置

**开关控制:**

| 方式 | 操作 |
|------|------|
| 会话中切换 | 打开 `/memory`,使用自动记忆切换 |
| 项目设置 | 设置 `"autoMemoryEnabled": false` |
| 环境变量 | 设置 `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` |

**存储位置:**
- 每个项目在 `~/.claude/projects/<project>/memory/` 获得自己的记忆目录
- 可在用户设置 `~/.claude/settings.json` 中自定义路径:

```json
{
  "autoMemoryDirectory": "~/my-custom-memory-dir"
}

值必须是绝对路径或以 ~/ 开头。

加载限制:

  • MEMORY.md 的前 200 行或前 25KB(以先到者为准)在每次对话开始时加载
  • 超过该阈值的内容在会话开始时不加载

浏览管理:

  • 运行 /memory 并选择自动记忆文件夹来浏览 Claude 保存的内容
  • 一切都是纯 markdown,可读取、编辑或删除

7. CLAUDE.md 文件层级

文件位置作用说明
~/.claude/CLAUDE.md主文件夹适用于所有 Claude 会话
./CLAUDE.md项目根目录检入 git,与团队共享
./CLAUDE.local.md项目根目录个人项目特定笔记,添加到 .gitignore 不与团队共享

八、工作流最佳实践

1. Plan Mode 启动方式

claude --permission-mode plan

2. 先探索,再规划,最后编码

步骤操作说明
① 探索进入 Plan ModeClaude 读取文件并回答问题,不进行任何更改
② 规划要求 Claude 创建详细的实现计划充分理解代码结构后再动手
③ 编码切换回 Normal Mode让 Claude 根据计划编码并验证
④ 提交要求 Claude 提交并创建 PR使用描述性消息

3. 给 Claude 明确的上下文

Claude 可以推断意图,但不能读心术。建议:

  • 引用特定文件(用 @ 引用)
  • 明确提及约束条件
  • 指出示例模式

九、目录结构参考

1. 整体架构:项目级 + 用户级

Claude Code 的配置分为两个层级:

层级路径说明
项目级项目根目录 .claude/仅当前项目生效,可提交 git 与团队共享
用户级(全局)~/.claude/所有项目通用,存放个人偏好

2. 项目级目录结构(.claude/

your-project/
├── .claude/
│   ├── CLAUDE.md              # 项目规则与持久上下文
│   ├── .mcp.json              # MCP 外部服务连接配置
│   ├── .worktreeinclude       # 开发分支创建时的文件复制清单
│   ├── settings.json          # 项目共享设置(权限、环境变量、模型)
│   ├── settings.local.json    # 个人覆盖设置(不提交 git)
│   ├── rules/                 # 条件触发的规则文件(按主题分文件)
│   ├── skills/                # 可复用的技能(/技能名 调用)
│   ├── commands/              # 快捷命令封装(比 skills 更简单)
│   ├── output-styles/         # 回答格式模板
│   ├── agents/                # 项目级 subagent 定义文件
│   └── agent-memory/          # subagent 的记忆存储

各文件说明:

文件/目录作用
CLAUDE.md项目规则和持久上下文,每次会话开始加载。建议 ≤200 行
.mcp.json配置外部服务连接(数据库、API、部署工具等)
.worktreeinclude创建 git worktree 分支时需复制的配置文件清单
settings.json项目基础设置,团队共用
settings.local.json个人覆盖设置,不提交 git
rules/按主题分文件的条件规则,相关话题出现时按需加载
skills/封装标准流程的技能卡片,/技能名 调用
commands/封装单一操作的快捷命令
output-styles/控制 Claude 输出格式(列表、步骤等)
agents/subagent 定义文件(如 code-reviewer.md
agent-memory/subagent 的长期记忆(如 code-reviewer/MEMORY.md

3. 用户级目录结构(~/.claude/

~/.claude/
├── CLAUDE.md                  # 跨项目通用行为准则
├── settings.json              # 全局基础设置(权限、环境变量、模型)
├── settings.local.json        # 个人偏好覆盖
├── rules/                     # 通用规则库
├── skills/                    # 全局技能
├── commands/                  # 全局命令
├── output-styles/             # 统一回答风格
├── agents/                    # 跨项目可复用的 subagent
├── agent-memory/              # subagent 跨项目记忆
├── projects/<project>/memory/ # 各项目自动记忆
├── keybindings.json           # 键盘快捷键配置
├── themes/*.json              # 自定义颜色主题
└── plugins/                   # 已安装插件

关键全局文件:

文件作用注意
~/.claude.json核心状态存储:登录凭证、UI 设置、插件列表切勿手动删除
keybindings.json自定义键盘组合键-
themes/*.json自定义颜色主题-
projects/<project>/memory/各项目的自动记忆笔记纯 markdown

4. 运行时临时数据

Claude 工作时自动生成,默认 30 天后自动清理

数据说明
projects/<project>/<session>.jsonl完整对话记录
projects/<project>/<session>/tool-results/工具输出结果(过大时单独存储)
file-history/<session>/修改文件前的备份快照(用于检查点恢复)
plans/Plan Mode 生成的任务分解草稿
debug/调试日志(仅开启调试时生成)
paste-cache/image-cache/粘贴内容和图片缓存
session-env/当前会话环境元数据
tasks/当前会话任务列表
shell-snapshots/命令行环境快照
backups/~/.claude.json 更新前的时间戳备份

不会自动删除的数据:

数据说明
history.jsonl所有提示词历史(按 ↑ 键回忆)
stats-cache.json聚合使用统计(/usage 展示)
todos/旧版任务列表(已废弃,可安全删除)

5. 数据清理

# 官方推荐清理命令
claude project purge [参数]
参数说明
--dry-run预览将删除的内容,不执行
--yes跳过确认提示
--all清除所有项目状态数据
-i逐项确认删除

切勿手动删除: ~/.claude.json~/.claude/settings.json~/.claude/plugins/


十、Subagents 实操指南

1. 创建 Subagent 的步骤

  1. 在 Claude Code 中运行 /agents
  1. 切换到 Library 选项卡 → Create new agentPersonal(保存到 ~/.claude/agents/,所有项目可用)
  1. 选择 Generate with Claude,描述 subagent 的功能
  1. 选择工具:只读审查者取消选择除 Read-only tools 之外的所有内容;保持全选则继承主对话的所有工具
  1. 选择模型:如 Sonnet(分析代码模式的能力与速度平衡)
  1. 选择颜色:为 subagent 选择背景颜色,便于在 UI 中识别
  1. 配置内存:决定 subagent 是否在对话中积累见解,不需要则选 None

2. /agents 管理界面

选项卡功能
Running显示实时 subagents,可打开或停止
Library查看所有可用 subagents;创建/编辑/删除

3. Subagent 范围

范围路径说明
项目级.claude/agents/仅当前项目可用
用户级~/.claude/agents/所有项目可用

直接在磁盘上添加/编辑 subagent 文件后需重启会话才能加载;通过 /agents 界面创建的则立即生效

4. Subagent 文件格式

---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---

You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.

5. 控制 Subagent 能力

通过 tools(允许列表)或 disallowedTools(拒绝列表)控制:

# 允许列表:只能读取和搜索
---
name: safe-researcher
description: Research agent with restricted capabilities
tools: Read, Grep, Glob, Bash
---
# 拒绝列表:继承所有工具,但禁止写入和编辑
---
name: no-writes
description: Inherits every tool except file writes
disallowedTools: Write, Edit
---