Sublime Text 崩溃后未保存内容可恢复:立即重启并保存 Untitled 标签页;或解析 Session.sublime_session 中 contents/input 字段;或查找 Local/Recovery/ 下 recovery- 开头的临时文件。

Sublime Text 崩溃或强制退出后,未保存的临时文件(如 Untitled 标签页)大概率还在,但不会自动弹窗提示——它靠缓存静默加载,关键在“别关、别点、别等”,立刻行动才能捞回来。
重启后看到 Untitled 标签页,马上 Save As
这是最快最常有效的路径。Sublime 默认开启 hot_exit 和 remember_open_files,异常退出后重启,未保存内容会静默加载进新标签页,标题显示为 Untitled 或 untitled:123,不是空的。
- 别点关闭按钮,也别新建文件或切换项目——任何操作都可能触发缓冲区刷新或覆盖
- 逐个点开
Untitled标签页,按Ctrl+A看是否能全选内容;若标题是灰色且内容为空,先点击标签再试 - 确认是你要的代码后,立刻执行
File → Save As,不要只点Save(没路径会失败) - 如果只恢复了部分标签页,反复按
Ctrl+Shift+T(Windows/Linux)或Cmd+Shift+T(macOS),它会逐个还原最近关闭的标签页,不是只限一次
手动打开 Session.sublime_session 提取 contents 字段
这个 JSON 文件是核心缓存,记录了所有打开文件的完整文本快照,包括未保存内容,字段名可能是 contents 或 input,取决于 Sublime 版本。
- 必须先彻底关闭 Sublime(任务管理器/活动监视器里确认无残留进程),否则文件正被写入,读出来可能损坏或不全
- 路径位置:
- Windows:
C:\Users\你的用户名\AppData\Roaming\Sublime Text 3\Local\Session.sublime_session - macOS:
~/Library/Application Support/Sublime Text 3/Local/Session.sublime_session - Linux:
~/.config/sublime-text-3/Local/Session.sublime_session
- Windows:
- 用 VS Code 或记事本打开,搜索你记得的函数名、变量名、注释关键词(比如
apiHandler或// TODO) - 找到匹配项后,在
buffers数组里定位"contents": ""或"input": ""字段,复制双引号内全部内容(注意\n是换行,\"是转义引号,粘贴后需手动还原格式)
检查 Local/Recovery/ 目录下的 recovery- 开头文件
某些崩溃场景(如断电、kill -9、强制杀进程)下,Sublime 会把未保存内容直接 dump 成纯文本临时文件,比解析 JSON 更快、更干净,内容可读,无需解码。
- 路径与
Session.sublime_session同级,进Local/Recovery/子目录即可 - 查找文件名以
recovery-开头、无扩展名或带.tmp的文件 - 优先找修改时间最接近崩溃时刻的(Windows 资源管理器按“修改日期”排序,macOS 用
ls -lt) - 直接用 Sublime 打开这些文件,内容通常是可读源码;看到就马上复制,别指望文件名能告诉你属于哪个项目——它只按时间戳和随机字符串命名
- 该目录只在异常退出后生成,正常退出不会写入;而且不持久,下次崩溃可能被覆盖
为什么有时完全找不到?三个关键破坏点
恢复失败往往不是因为文件丢了,而是缓存被覆盖或配置被改掉:
-
hot_exit被设为false:一旦关闭该设置,Sublime 退出时直接丢弃未保存内容,不写任何缓存 - 反复重启 Sublime:每次启动都会生成新的
Session.sublime_session和Recovery文件,旧数据被覆盖 - 手动清空
Local/目录,或用 CCleaner 类清理软件把*.sublime_session当垃圾删了——这个目录就是唯一缓存载体,删了就真没了
真正容易被忽略的是:缓存不是“存在内存里等你想起”,而是落盘到具体文件;而这些文件只在异常退出后写入,且没有 UI 入口主动暴露——你得自己去翻、去搜、去抢时间。动作越慢,覆盖越快。

















