主题
字号
Chapter 02 / 06 ≈ 28 min
第二章

日常使用

打开 Claude Code,你会遇到的所有「打字的方式」。三种前缀、三十多个斜杠命令、一个叫权限的弹窗、一把快捷键——本章把这些全讲透。命令卡片可以点开,展开详细用法和示例。

先认识三种输入前缀

在 Claude Code 的输入框里,第一个字符决定了这条输入是什么意思。大部分时候你直接打中文或英文——那是「自然语言请求」,Claude 会自己推断你想干啥。但有三个特殊符号会改变这条输入的性质:

前缀含义例子
@引用文件或目录的内容@src/api.ts 帮我加一个错误处理
!让 Claude 帮你跑一条 shell 命令!git status
/调用一个「斜杠命令」/plan/goal ...

还有一个位置敏感的前缀:

这几个前缀你会天天用,我们一个个来。

@ — 把文件「贴」进对话

如果你想让 Claude 看某个具体的文件,最笨的办法是让它自己去找。但如果你已经知道是哪个文件,直接用 @ 指给它看更快、更省 token。

> @src/utils/date.ts 这里面的 formatDate 能不能支持时区参数?

Claude 会先把 src/utils/date.ts 的内容读进上下文,再回答你。打到 @ 的时候会弹出模糊匹配菜单,你可以用方向键选文件;一句话里可以 @ 多个文件,也可以 @ 整个目录(它会递归列出文件清单,但默认不会把所有文件都读进来——目录是「路标」,不是「夹带」)。

还有几个鲜为人知的变体:

什么时候用 @,什么时候让它自己找

你确切知道要哪个文件:用 @。省一次 Glob,也不给它选错文件的机会。
你只有模糊需求(「修一下那个登录 bug」):不要@——让 Claude 自己去搜、去找,它擅长这个,还会顺便把相关文件一起扫了。

! — 临时跑一条命令

有时候你只是想让 Claude 看一眼命令输出,不用走完整的对话流程。用 !

> !git log --oneline -20

它会直接执行这条命令,把输出放进对话里。下次你问「刚才最近那个提交改了啥」,它就能直接看到上下文,不用再自己跑一次 git。这个前缀本质上是你和 Claude 共享一个终端观察视角——你看到的它也看到了。

! 特别适合那些「我自己打会更快、但我希望 Claude 也看到结果」的场景:!npm test!docker ps!cat .env.example!curl -I example.com

还有一个变体:在 Skill 或 CLAUDE.md 里写 !`git diff HEAD`(反引号包起来),意思是「加载的时候跑这个命令,把结果当成内容的一部分」。动态内容注入——第三章会详细讲。

/ — 斜杠命令:Claude Code 的「功能键」

斜杠命令是内置的小功能。你打一个 /,就会弹出一个自动补全菜单,列出所有可用的命令——包括你自己写的 Skill 和项目里挂的插件提供的命令。

截至 2026 年 5 月,Claude Code 官方的斜杠命令大约 40 个。下面按主题分组。点击任意卡片可以看命令的详细用法、示例、注意事项。

会话保养类

日常维持会话状态用的命令。它们不改代码,只管「让这次聊天更舒服」。

/help列出所有命令和快捷键,忘了就按它。
/status显示当前模型、工作目录、账号、会话 ID 等状态。
/context查看上下文用了多少 token,哪些东西在吃内存。
/compact让 Claude 总结前面对话,腾出上下文空间。
/clear开一个全新的会话,彻底清空上下文。
/rewind回到某个检查点,撤销代码和对话。
/resume挑一个历史会话继续。
/fork把当前会话分叉成新会话。
/doctor诊断安装、设置、认证、MCP 问题。
/debug排障日志:API 请求、工具耗时、hook 记录。
/exit退出 Claude Code。Ctrl+D 等价。
/tui切到无闪烁的全屏渲染模式。

容易搞混的地方

/compact/clear 不一样。/compact 保留任务上下文只压缩历史,/clear 直接把前面全忘了。任务没做完千万别 /clear

模型与强度

Claude Code 不是一个模型,是一组。不同任务配不同模型能显著省钱、省时间。

/model在 Opus / Sonnet / Haiku 之间切换。
/effort调推理强度,从 low 到 max。
/fast切到 Opus 快速模式,响应更快。
/theme改主题,支持自定义。

搭配建议

重构 / 难 bug
Opus 4.7 + xhigh 或 max。它要多想两轮,成功率远高于一把过就改。
日常开发
Sonnet 4.6 + high。响应快,够聪明。大部分时间用这个。
批量机械改动
Haiku 4.5 + medium。几十个函数加 JSDoc、把 var 全换成 const——用 Haiku 便宜十倍。
设计方案
Opus 4.7 + max + /plan。花钱买决策质量,最值。

注意,你还可以使用你的脑子,不需要消耗 token。

长期记忆与配置

让 Claude「记住」项目规矩的一组命令。第三章会展开讲,这里先认名字。

/init扫项目,自动生成一份 CLAUDE.md。
/memory查看当前加载的 CLAUDE.md 和自动记忆。
/permissions管理允许/禁止的操作。
/less-permission-prompts自动生成只读命令白名单,少弹窗。

任务与工作流

控制 Claude「怎么干」的命令。这一组是本章的重头戏——/plan/goal/btw 是 Claude Code 工作流的三个支点。

/plan进入计划模式,只读不改。
/goal设定完成条件,让它自主做到达成。
/btw临时插一句不进主对话历史的话。
/rename给当前会话起个人话名字。
/loop按间隔或自调节节奏反复执行提示。
/background把整个会话丢到后台继续跑。
/tasks看当前会话的后台任务列表。
/schedule基于 cron 的定时远程任务。

/plan — 先想清楚再动手

新手最容易翻车的场景是:说一句「帮我把登录模块重写一下」,然后看着 Claude 哗啦哗啦改了二十个文件,改完你一看,根本不是你想要的方向,但 diff 已经一大堆了。

/plan 就是为这种情况准备的。进入计划模式后,Claude 变成「只读」:它可以看文件、搜索、分析,但不能改文件、不能跑会产生副作用的命令。它会产出一份方案——列出打算改什么、为什么这么改、有什么影响——然后停下来让你看。

> /plan
> 重写登录模块,用 JWT 替代 session

· 读取 src/auth/session.ts
· 读取 src/middleware/auth.ts
· Grep "req.session" (47 matches in 12 files)
· 读取 tests/auth.test.ts

计划:

1. 新增 src/auth/jwt.ts:封装 sign/verify,用 jose 库
2. 改 src/middleware/auth.ts:从 session 读改成从 Authorization header 读
3. 改 src/routes/login.ts:登录成功后签发 JWT(15 分钟 access + 7 天 refresh)
4. 兼容期:保留 session 逻辑 2 周
5. 更新 12 个调用点
6. 补 8 个新测试

潜在风险:
- 前端需要同步改登录返回处理
- 中间件顺序要调整(csrf → jwt → session)
- 老会话怎么迁移?建议发一个一次性迁移脚本

请确认,或告诉我哪里要调整。

你看完这份计划,可以说「好,去做吧」(按 Shift+Tab 切到 normal 模式),也可以说「第 4 步不用兼容层,直接切」,然后它会更新计划。

计划模式的几个细节

经验法则

凡是涉及多个文件、或者你不确定影响范围的任务,都先 /plan。代价是多花一分钟看计划,收益是避免半小时的回滚。

/goal — 设定完成条件 2026.05.11

默认情况下,Claude 每做一轮会停下来看你一眼。这适合「边走边聊」,但有些任务你希望它一口气做完——比如「把所有 TypeScript 报错修掉」、「让测试覆盖率到 80%」。这些都有明确的、机器可验证的完成判据。

/goal 就是告诉它:别停,直到下面这个条件满足。

> /goal 所有 tsc 报错清零,且 npm test 全绿

设完你会看到一个小进度卡片,实时显示:已经跑了几轮、用了多久、花了多少 token、离目标还有多远(估算)。Claude 会反复跑 tscnpm test、修、再跑,直到两个命令都干净为止。

「可验证」是关键

/goal 只接受二元判断的目标——对或错、绿或红、满足或不满足。Claude 自己能跑命令检查答案的那种。

好目标(可验证)坏目标(会死循环)
npm test 全绿测试写得好
eslint 零警告代码质量高
端口 3000 能返回 HTTP 200性能更好
git grep "TODO" 为空处理所有遗漏
bundle size < 500KB让打包更小

几个进阶用法

v2.1.140 的一个小坑

v2.1.140(2026-05-12)修复了一个已知 bug:/goal 在某些 hook 配置下会静默卡住。如果你的 Claude Code 版本老于 2.1.140,遇到 goal 不动了,不是它懒,是 hook 里有东西挡住了——升级就好。

三个省心小命令:/btw、/rename、/fork

这三个命令单看都不起眼,合起来是长会话下的生存技能。

/btw — 不进主对话的旁白

想象你在指挥 Claude 做一件大事,中间突然想问:「对了,这个项目用 pnpm 还是 npm?」——这个问题和主任务无关,但你懒得等 Claude 忙完。以前只能直接问,结果这个闲聊会被记进对话历史,以后每次 /compact、每次资源传递,都带着这条没用的 QA。

现在有了 /btw。它的消息存在「旁路」里,不会进入主对话历史,就像在会议中举手问了一句话,但会议纪要里不记。

> /btw 这个项目用 pnpm 还是 npm?
Claude: 看 lockfile 是 pnpm-lock.yaml,所以 pnpm。

> (继续主任务,刚才的问答不占主上下文)

/rename — 给会话贴标签

Claude Code 支持同时开多个会话(一个改前端,一个改后端,一个跑后台调研)。默认每个会话用一串随机 ID 命名,过两天你根本分不清谁是谁。/rename 给当前会话起个人话名字,之后在 /tasksclaude resume、agent 视图里都以这个名字出现。

> /rename 重构登录模块

/fork — 走两条路

/fork 复制一份当前上下文到新 session,两边各走各的。典型用例:你走到一半想试两种方案——fork 出一个新会话,在它里面试方案 B;原会话继续方案 A。谁跑得好留谁。

审查三件套:/review、/security-review、/simplify

写完代码要 review。Claude Code 内置了三种视角的审查器,点开卡片看每个的具体用法:

/review对当前分支或指定 PR 做综合审查。
/security-review专项安全审查,按 OWASP 过一遍。
/simplify找可以删掉、可以合并的代码。
/ultrareview云端并行的深度审查。

什么时候用哪个

每次 commit 前
/review。三十秒审完当前 diff,抓住明显的 bug 和漏测。
涉及用户输入 / 鉴权 / 支付
/security-review 必跑。成本几乎零,一旦找到一个 SQL 注入就值回票价。
重构完觉得「这代码怎么比原来还长」
/simplify。它会指出没必要的防御性代码、可以抽出的重复、被删掉也不影响的分支。
重要 PR 合并前
/ultrareview。多个 agent 并行从不同角度审,比本地 /review 慢几分钟但深得多。

插播:权限那一幕

你用着用着会遇到这一幕——Claude 想跑一条命令,终端突然停下来,弹出一个框:

Claude wants to run: rm -rf node_modules

  [y] Yes, once
  [a] Yes, and don't ask again for this pattern (Bash(rm -rf *))
  [n] No, and tell Claude what to do instead
  [e] Edit the command before running

这是 Claude Code 的权限系统。每次模型想调用「有副作用」的工具——写文件、跑命令、上网请求——默认都会先问你一下。读文件、搜索这类只读操作不会问。

四个选项

y
这一次允许,以后同样的命令还会再问。最安全,但高频操作会烦。
a
允许并记住这个模式,以后不问了。Claude 会给你一个合理的 glob(比如 Bash(npm run test *))——看一眼再按,别闭眼按。
n
拒绝。弹窗里可以顺带告诉 Claude 你希望它改怎么做——它会拿着你的反馈重新规划。
e
命令我改一下再跑。你可以在终端里直接编辑那条命令,然后确认。特别适合「它想跑的对,只是路径不对」的情况。

四种权限模式

Shift+Tab 在几种模式之间循环:

模式行为适合
default有副作用的工具每次问日常
plan完全只读,没副作用不确定、先看方案
auto (acceptEdits)文件编辑自动通过,命令还是问信任编辑、警惕命令
bypass什么都不问(危险)只在一次性容器/沙盒里用

配置:在 .claude/settings.json 里定白名单

{
  "permissions": {
    "allow": [
      "Bash(npm test *)",
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Bash(ls *)",
      "Read",
      "mcp__github__*"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "Bash(curl * | sh)",
      "Write(.env)",
      "Write(.env.local)",
      "mcp__slack__send_message"
    ]
  }
}

语法要点:

一键配好白名单

懒得手写?打 /less-permission-prompts,Claude 会扫你的历史记录,把反复通过的只读命令聚合成建议白名单,一步写进 settings.json。本来要按二十次 y,改完再也不弹。

不要无脑开 --dangerously-skip-permissions

有这么一个 CLI 旗标可以关掉所有权限提示。适合跑在一次性 Docker 容器或 CI 沙盒里。直接在你的主力电脑上用它,等于把方向盘交给一个没见过这条路的司机——而且司机以为自己见过。一旦它决定 rm -rf /,你没有第二次机会。

快捷键:那些能让你快十倍的组合

Claude Code 在终端里跑,键盘就是一切。以下这些值得记到肌肉记忆里:

基本操作

按键作用
Enter发送消息
Shift+Enter换行(部分终端支持)
\ + Enter换行(所有终端通用)
Esc中断当前生成
Esc × 2打开 rewind 菜单,选择回到某个检查点
Ctrl+C按一下:取消当前输入。按两下:退出
Ctrl+D退出 Claude Code
Ctrl+L强制刷新终端显示
Ctrl+R反向搜索历史命令(Ctrl+S 切换到只搜当前项目)
?弹出快捷键小抄

模式切换

按键作用
Shift+Tab循环切换权限模式(default → auto → plan)
Tab打开/关闭扩展思考
Alt+P / Opt+P切换模型(Sonnet / Opus / Haiku)
Alt+T / Opt+T切换 thinking
Ctrl+T打开/关闭任务列表面板
Ctrl+O切换详细输出
Ctrl+G在外部编辑器里写本次输入

输入编辑

按键作用
Ctrl+U清空当前输入
Ctrl+Y恢复刚被 Ctrl+U 清掉的内容
Ctrl+K删到行尾
Ctrl+S把当前输入暂存(之后 Ctrl+R 找回)
Alt+B / Alt+F按词向前 / 向后跳
Ctrl+A / Ctrl+E跳行首 / 行尾

后台 / agent 控制

按键作用
Ctrl+F按两下:停掉所有后台 agent
Shift+↓在 Agent Teams 里切换队友
Shift+Drag拖文件进输入框 = @文件
Ctrl+V粘贴剪贴板里的图片(支持截图)

自己改键位

想把某个快捷键换成别的?/keybindings 打开 ~/.claude/keybindings.json,按 VS Code 式的语法改。改完立刻生效,不用重启。

CLI 模式:把 Claude Code 当命令行工具

Claude Code 不只是交互式界面。它也是一个 CLI——可以被脚本、CI、Makefile 调用。

几种启动方式

# 交互式
$ claude
$ claude "帮我看看 main.py"        # 带初始 prompt

# 非交互(打印一次就退出)
$ claude -p "给这个项目写一句话总结"
$ cat README.md | claude -p "总结成三个 bullet"

# 续会话
$ claude -c                         # 最近一次
$ claude -r "重构登录模块"          # 按名字
$ claude --from-pr 42               # 按 GitHub PR 号

# 隔离 / 后台
$ claude -w feature-jwt             # 新建 git worktree 隔离跑
$ claude -w feature-jwt --tmux      # + tmux 分窗口

常用 flag(节选)

Flag作用
--model opus|sonnet|haiku指定模型
--effort high指定思考强度
--max-turns 10非交互模式下最多走几轮
--max-budget-usd 2.00花费超过就停
--output-format json输出成 JSON 方便脚本解析
--json-schema '...'用 schema 校验输出
--allowedTools "Read,Grep,Glob"限定工具(常用于 CI)
--permission-mode plan启动时就进 plan 模式
--agent my-researcher指定用某个 agent
--bare跳过 hooks/plugins/auto-memory,干净启动
--dangerously-skip-permissions禁用权限弹窗(只在沙盒用)

一个 CI 里的实战例子

给 PR 自动生成变更说明,写成 GitHub Action 的一步:

# .github/workflows/pr-summary.yml
- name: Summarize PR with Claude
  run: |
    gh pr diff ${{ github.event.pull_request.number }} | \
    claude -p "把这份 diff 总结成 3 条 bullet,面向评审者" \
      --output-format text \
      --max-turns 1 \
      --max-budget-usd 0.50 > summary.txt
    gh pr comment ${{ github.event.pull_request.number }} --body-file summary.txt
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

这里用了 --max-turns 1 和预算上限——CI 里最怕的是「无限循环吃钱」。加上这两个就是理性的。

把这些串起来:一条真实的工作流

下面是用 Claude Code 做一个功能的典型流程,把本章讲到的东西都串起来:

# 1. 进项目,启动
$ cd my-project
$ claude

# 2. 给这次会话起个名字,方便回来
> /rename 加一个文件上传接口

# 3. 用计划模式先让它想清楚
> /plan
> 加一个 POST /api/upload,接受图片,存到 S3,返回 URL

# Claude 列出 8 步计划。我看完 OK,Shift+Tab 切到 normal

# 4. 干活中途,想起个小问题 —— /btw
> /btw 这个项目的 S3 bucket 名字在哪个环境变量里?
# Claude 扫了眼 .env.example 直接答了,不占主上下文

# 5. 让它一口气做完 —— /goal
> /goal 新接口有完整测试,npm test 全绿,tsc 无报错

# 6. 中间如果想要停,Ctrl+C 随时

# 7. 完事了自检一下
> /review

# 8. 安全视角再扫一遍(上传接口一定要)
> /security-review

# 9. 上下文差不多了,压一下为下一任务腾空间
> /compact

# 10. 提交
> 根据 git diff 写个 commit message,别合并到 main

十步里有六个斜杠命令、两次自然语言请求、几次快捷键。这是 Claude Code 的日常节奏——你和它之间的切换越丝滑,效率越高。

练习

选一个你自己的小项目,按上面的十步跑一遍。不用做真实功能——随便一个「加一个 /ping 路由」也行。重点是让三个关键命令(/plan/goal/review)从陌生变成反射。