Claude Code 实战入门(二):快捷键、四态切换、Thinking Mode
Shift+Tab 不是开关而是四态循环。Thinking Mode 有 5 档。Escape 和双击 Escape 做的事不同。五个会重塑日常手感的快捷键。
这些快捷键不在帮助里是有原因的——它们靠用出来发现,不靠文档。我还是写一遍。
Shift+Tab——四态循环
大多数人以为 Shift+Tab 是 auto-accept 的开关。不是。它按顺序循环四个状态:
Normal → Accept edits → Plan mode → Bypass permissions → Normal
每个状态改变 Claude 不问就做的事:
| 状态 | 改变 |
|---|---|
| Normal | 默认。文件写入和 shell 命令前都问。 |
| Accept edits | 自动接受文件编辑。Shell 仍要确认。 |
| Plan mode | 出计划但不执行。在产生副作用之前先看计划很有用。 |
| Bypass permissions | 跳过所有确认。仅用于你信任的当前任务。 |
状态栏显示当前态。Shift+Tab 切换。没有"我用得最多"——它们对应不同任务。Plan mode 是开始一个未知改动时用;Accept edits 是长期重构时用,反正我在看输出;Bypass permissions 用于跑一个已知、限定的脚本——绝不盲用。
Thinking Mode——5 档
Prompt 里任何位置写下面一句,Claude 就改变它在回答前的推理深度:
| 短语 | 大致工作量 |
|---|---|
think | 一点额外推理 |
think more | 多几秒 |
think a lot | 明显慢、明显深 |
think longer | 适合架构决策 |
ultrathink | 最高档 |
成本随深度上升——每档多吃 Token。正确档次取决于任务:
- “改一个 typo”——不写
- “找出这测试为什么 flaky”——
think more - “重构这模块”——
think a lot - “这块是不是该从 REST 切到 gRPC”——
ultrathink
我对一切"非显然"任务的默认是 think a lot。比这低的我直接写 Prompt。比这高的,我是在问一个不同种类的问题,ultrathink 对此也很诚实。
陷阱是因为"显得严谨"就在每条 Prompt 上 ultrathink。它不严谨——只是贵。模型在与任务复杂度匹配的档次上表现最好。
Control+V——粘图
直接粘图到 Prompt。UI 截图、错误对话框、设计稿、白板照片——Claude 当文字读。最有用的版本是"测试挂了,输出在这截图里,问题是什么"。不用转抄。
Escape 与双击 Escape
单 Escape 中断当前生成。在你意识到刚才指令错了的瞬间按。Agent 停,你纠正。
双击 Escape(快速按两下)打开过去几轮的历史视图。选一轮"回滚"到那里,对话从那一点 fork 出来。被选轮之后的内容从上下文丢弃。
这是我用其它 Coding Agent 时最想念的特性。Fork 对话才是对的原语——让你试一条路、判断错了、回去而不污染 Agent 的记忆。
/compact 和 /clear
处理长对话的两种方式:
/compact把目前为止的对话压缩成一段更短的消息然后继续。当 Agent 因为上下文大开始变慢时用。/clear把对话整个丢掉重新开始。当你切到同一个项目里不相关的任务时用。
两个都保留 CLAUDE.md 和 .claude/settings.json。只动本会话的消息历史。
实际工作流的样子
我今早一段真实流程:
> @src/api/handlers.ts
> think a lot —— 团队想给这文件里 3 个 POST handler 加幂等键。
> 给个方案,复用现有 middleware 模式。
[Claude 给方案——我读]
[Shift+Tab 切到 Plan mode]
> 好,把它写成计划,先别改。
[Claude 列步骤]
[Shift+Tab 切到 Accept edits]
> 干。
[Claude 改文件,我看着滚]
[Shift+Tab 切回 Normal,准备跑测试]
> 跑测试。
[Claude 停下来问——是的——跑——三过一挂]
[双击 Escape 回滚到跑测试之前]
> 挂的那个测试是测旧的非幂等路径的。改它,让它验证新行为。
这一整段流程把这一篇里每个原语都用上了。单看每个都不惊艳。合起来让 Claude Code 像个真工具,不是"包了 Chat 的自动补全"。
下一篇:自定义斜杠命令与 $ARGUMENTS。