中断、后台运行与检查点回退
空输入时连按两次 Esc,是这个工具唯一的后悔药入口——而多数人从来没触发过它。附一条它救不了你的重要例外。
三件事,按用到的频率排序:怎么叫停、怎么让它在后台跑、怎么退回去。
一、叫停:Esc
发现方向不对,立刻按 Esc。不要等它做完。
Esc 会停下当前的回复或工具调用,已经完成的部分会保留。你可以直接接一句纠正它,不用从头再来。
这是最该养成的习惯。 看着它往错的方向走还等它跑完,浪费的是你的额度和时间。
几个相关的键:
| 按什么 | 效果 |
|---|---|
Esc |
中断它;如果有对话框打开,则是关掉对话框 |
Ctrl + C |
中断;没有正在跑的东西时,清空输入框 |
Ctrl + C 再按一次 |
退出 Claude Code |
二、后台:Ctrl + B
一件事要跑很久,你不想干等——按 Ctrl + B 把它转到后台,终端交回给你,继续做别的。
用 /tasks 查看和管理后台在跑的东西。
有些事会自动转后台
shell 命令跑超时了不会失败,会自动移到后台继续跑。 默认超时是两分钟。
你会看到类似这样一行:
Command did not complete within its 120s timeout and was moved to the background
这是正常行为,不是错误。
一个例外:以
sleep开头的命令永远不会自动转后台。
后台任务的几条限制
| 输出超过 5 GB | 会被终止 |
| Claude Code 退出时 | 自动清理 |
| 子代理开的后台命令 | 60 分钟后终止 |
三、退回去:空输入时连按两次 Esc
这是这一节的重点,也是最少人知道的功能。
输入框是空的时候,连按两次
Esc,会打开回退菜单。如果输入框里有字,双
Esc是清空输入(清掉的内容会存进历史,按↑能找回来)。
它是怎么工作的
你每发一条消息,它就自动存一个检查点。 你不需要做任何事。
菜单里的六个选项
选中某一个历史消息之后:
| 选项 | 做什么 |
|---|---|
| 恢复代码和对话 | 文件和对话一起退回到那时候 |
| 只恢复对话 | 对话退回去,文件保持现状 |
| 只恢复代码 | 文件退回去,对话保留 |
| 从这里往后总结 | 把这个点之后的对话压成摘要,腾出上下文空间 |
| 总结到这里为止 | 把这个点之前的压成摘要,后面的原样保留 |
| 算了 | 什么都不做 |
「只恢复对话」很有用但容易被忽略。 它适合这种情况:文件改对了,但你和它绕了很多弯路,对话里堆满了废话。保留成果,清掉过程。
如果那个检查点没有文件改动,两个「恢复代码」的选项不会出现。
也可以用 /rewind
效果一样。它还能直接带参数:/rewind 5 会原地把第 5 段总结掉。
存多久
- 保留最近 100 个检查点
- 和会话一起,30 天后删除
- 关掉再
--resume回来,检查点还在
五条限制,第一条最重要
① 用命令删掉的东西,救不回来
只有它用「编辑文件」这类工具做的改动才被跟踪。
它跑
rm、mv、cp造成的改动,检查点里没有。回退救不了。
这一条必须记住。 它意味着:
- 回退是「本地撤销」,不是备份
- 真正的保险是 Git,见面向非技术用户的 Git 基础
官方自己的说法是:把检查点当成本地撤销,把 Git 当成永久历史。
② 子代理改的东西,不会被恢复
子代理的改动落在你这个会话的检查点之外。要撤销只能用 Git。
③ 外部改动不跟踪
你自己手动改的、别的会话改的,都不在里面——除非正好和这个会话改了同一批文件。
④ 符号链接跳过
如果某个文件是符号链接或硬链接,恢复时会跳过它,并提示「Restored the code, but skipped N files」。被跳过的文件保持现状。
⑤ 它不能代替版本管理
这是把前四条合起来的结论。
一个实际的用法
把回退当成「便宜的试错」,而不是「出事之后的补救」。
具体做法:
- 想试一个不确定的改法,直接试
- 结果不满意,双
Esc→ 恢复代码和对话 - 换个说法再来一次
这比「先想清楚再动手」高效。 试一次的成本被压到几秒钟,那就该多试几次。
前提是那件事在检查点的覆盖范围内——也就是上面那五条限制之外。涉及删除和移动文件的操作,先 Git 提交一次再动手。
顺手提一句:Ctrl + O
按 Ctrl + O 打开完整记录视图,能看到它每一步具体调了什么工具、传了什么参数。
排查「它到底做了什么」的时候用这个,比问它更可靠。
本节事实查证日期:2026-08-05。 依据:官方 Checkpointing 与 Interactive mode。