第 04 期 | 交互基石:探索终端里的魔法模式 (Modes)
🎯 学习目标
学完本期你将掌握:
- Plan Mode 与 Default Mode 的实战切换时机
- Extended Thinking(深度思考)模式的开启与效果
- Headless / Print Mode 的脚本化用法
- 会话恢复 (
--continue,--resume) 的技巧
📖 核心概念讲解
4.1 模式全景图
╭─ Claude Code 模式体系 ─────────────────────────────╮
│ │
│ ┌─────────────┐ ┌──────────────┐ │
│ │ Plan Mode │◄──►│ Default Mode │ Shift+Tab │
│ │ 只读分析 │ │ 读写执行 │ │
│ └─────────────┘ └──────────────┘ │
│ │
│ ┌──────────────────────────────────────────┐ │
│ │ Extended Thinking(深度思考) │ │
│ │ 适用于复杂推理、架构设计 │ │
│ │ 开启: 终端内按 `!` 前缀或设置 thinking=on │ │
│ └──────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────┐ │
│ │ Print Mode (-p)(脚本模式) │ │
│ │ 单次执行,无交互,输出到 stdout │ │
│ │ 用法: claude -p "query" │ │
│ └──────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────┐ │
│ │ Bare Mode (--bare)(精简启动) │ │
│ │ 跳过加载 CLAUDE.md / Skills │ │
│ │ 用于快速一次性任务 │ │
│ └──────────────────────────────────────────┘ │
│ │
╰─────────────────────────────────────────────────────╯
4.2 深度思考 (Extended Thinking)
当遇到复杂的架构决策或多步推理问题时,可以开启深度思考模式:
# 全局开启
claude --effort max
# 或在设置中配置
# ~/.claude/settings.json
{
"preferences": {
"thinkingMode": "on"
}
}
努力级别 (Effort Level):
| 级别 | 说明 | 适用场景 |
|---|---|---|
low |
快速响应,少量推理 | 简单文件操作 |
medium |
默认级别 | 日常编码 |
high |
深度推理 | Bug 排查、重构 |
max |
最大推理深度 | 架构设计、复杂算法 |
💻 模拟 Claude TUI 交互
场景 1:Plan Mode 探索陌生代码库
> (Shift+Tab 切换到 Plan Mode)
╭─ 🔒 Plan Mode ──────────────────────────────────────╮
│ Only read-only tools are available │
╰──────────────────────────────────────────────────────╯
> 从购物车页面开始,解释结账流程是如何工作的
╭─ Claude (Plan Mode) ────────────────────────────────╮
│ │
│ 🔍 Using tool: Glob (src/pages/cart**) │
│ 🔍 Using tool: Read (src/pages/cart/index.tsx) │
│ 🔍 Using tool: Grep ("checkout" across src/**) │
│ 🔍 Using tool: Read (src/api/checkout.ts) │
│ 🔍 Using tool: Read (src/hooks/useCheckout.ts) │
│ 🔍 Using tool: Read (src/services/payment.ts) │
│ │
│ ## 结账流程分析 │
│ │
│ ```mermaid │
│ sequenceDiagram │
│ Cart->>CheckoutAPI: POST /api/checkout │
│ CheckoutAPI->>Stripe: Create PaymentIntent │
│ Stripe-->>CheckoutAPI: clientSecret │
│ CheckoutAPI-->>Cart: { clientSecret, orderId } │
│ Cart->>Stripe.js: confirmPayment(clientSecret) │
│ Stripe.js-->>Cart: Success / Failure │
│ Cart->>CheckoutAPI: PATCH /api/orders/{id} │
│ ``` │
│ │
│ 关键文件: │
│ • `src/pages/cart/index.tsx` → 购物车 UI │
│ • `src/api/checkout.ts` → 创建订单 + Stripe Intent │
│ • `src/services/payment.ts` → Stripe SDK 封装 │
│ • `src/hooks/useCheckout.ts` → 前端状态管理 │
│ │
│ 💡 整个流程没有修改任何文件,纯分析。 │
│ │
╰──────────────────────────────────────────────────────╯
场景 2:Print Mode 脚本化使用
# 单次执行,结果输出到终端
$ claude -p "解释 src/auth/jwt.ts 的作用"
这个文件实现了 JWT 认证中间件:
- generateToken(): 生成包含 userId 的 JWT
- verifyToken(): 验证请求头中的 Bearer token
- refreshToken(): 刷新即将过期的 token
...
# 管道式用法:分析日志
$ tail -200 app.log | claude -p "分析这些日志中的异常"
# 管道式用法:代码审查
$ git diff main --name-only | claude -p "审查这些修改文件的安全性"
# 输出为 JSON 格式
$ claude -p --output-format json "列出项目中所有的 API 端点"
场景 3:恢复之前的会话
# 恢复上一次会话
$ claude -c
✓ Resuming previous session...
✓ Context restored: "auth module refactoring"
✓ 12 messages in history
# 恢复命名会话
$ claude -r "auth-refactor" "继续完成 refresh token 的实现"
# 分叉会话(保留原始,在副本上工作)
$ claude --resume abc123 --fork-session
💻 代码演示:Pipe 管道的高级用法
# 🔥 实用组合:自动翻译项目中的新字符串
claude -p "translate new strings into French and raise a PR for review"
# 🔥 批量处理:检查所有改动文件的安全问题
git diff main --name-only | claude -p "review these changed files for security issues"
# 🔥 日志分析:找到异常并自动通知
tail -200 app.log | claude -p "Slack me if you see any anomalies"
# 🔥 控制输出格式
claude -p --output-format json "列出所有 TODO 注释" > todos.json
# 🔥 限制预算和轮次
claude -p --max-turns 3 --max-budget-usd 0.50 "快速修复这个 lint 错误"
🔧 涉及的 CLI Flags
| Flag | 作用 | 示例 |
|---|---|---|
-p / --print |
Print Mode,无交互执行 | claude -p "query" |
-c / --continue |
恢复上一次会话 | claude -c |
-r / --resume |
恢复指定会话 | claude -r "session-name" |
--fork-session |
分叉会话 | claude --resume id --fork-session |
--effort |
设定推理深度 | claude --effort max |
--bare |
精简启动 | claude --bare -p "query" |
--max-turns |
限制最大执行轮次 | claude -p --max-turns 3 |
--max-budget-usd |
限制花费上限 | claude -p --max-budget-usd 5.00 |
--model |
指定模型 | claude --model sonnet |
--output-format |
输出格式 | json, text, stream-json |
📝 本期要点回顾
- Plan Mode 是探索陌生代码库的 "安全第一步"
- Print Mode (
-p) 让 Claude Code 变成 Unix 管道中的智能组件 - Extended Thinking 可在复杂场景下提升推理质量
- 用
--continue和--resume实现跨会话的工作延续 --max-budget-usd和--max-turns是费用控制的安全阀