ctrl+shift+t无法恢复未保存的标签页,因其仅重开有真实路径的已关闭文件;未保存内容需从recovery目录或session.sublime_session中手动抢救。

Ctrl+Shift+T(Windows/Linux)或 Cmd+Shift+T(macOS)不能恢复未保存的标签页——它只恢复“已固化、已关闭、有路径”的文件,且不带未保存的修改。真要救回刚关掉却没保存的代码,得绕开快捷键,直奔缓存文件。
为什么Ctrl+Shift+T对未保存内容完全无效
这个命令底层调用的是 reopen_last_closed_file,它只记录关闭时已有真实文件路径的标签页。以下三类关闭行为均不会被收录:
- 标题带
*的未保存标签页(如Untitled或untitled:123) - 预览态标签页(侧边栏双击打开、未按
Enter固化的斜体文件) - 刚新建、未编辑、未聚焦就直接关闭的空白标签
也就是说,你关掉一个写着 200 行代码但从未点过 Save 的 Untitled 标签,Ctrl+Shift+T 压根不知道它存在。
立刻抢救:检查 Recovery 目录里的纯文本快照
Sublime 在异常退出或强制关闭时,会把未保存内容以原始文本形式写入 Recovery 目录,不依赖 JSON 解析,打开即见源码。
- 先确保 Sublime 已完全退出(任务管理器/活动监视器里无残留进程)
- 定位到对应路径:
Windows:C:\Users\你的用户名\AppData\Roaming\Sublime Text 3\Local\Recovery\
macOS:~/Library/Application Support/Sublime Text 3/Local/Recovery/
Linux:~/.config/sublime-text-3/Local/Recovery/ - 查找文件名以
recovery-开头、无扩展名或带.tmp的文件 - 用 Sublime 自身或 VS Code 直接打开——内容通常是可读源码,无需解码
注意:该目录只在异常退出后生成,正常退出不会写入;且每次崩溃可能覆盖前一次,看到就马上复制。
备选方案:从 Session.sublime_session 提取 contents
如果 Recovery 目录为空,或你记得部分变量名/注释关键词,可转向更底层的会话文件。它体积大、结构复杂,但胜在保留了所有缓冲区原始文本。
- 必须先关闭 Sublime,否则文件正被写入,内容可能损坏或不完整
- 打开同级目录下的
Session.sublime_session(不是Auto Save Session) - 搜索你记得的字符串,比如
function apiHandler或// TODO: fix race condition - 找到匹配项后,定位到
"contents": "..."字段,复制双引号内全部内容(含\n和\",粘贴后需手动还原换行和引号)
这个 JSON 文件里没有文件名,只有内容和光标位置,所以关键词搜索是唯一可行入口。
下次别再靠运气:两个设置必须开
恢复是补救,预防才是关键。这两个配置项决定你崩溃后能否“自动续上”:
-
"hot_exit": true—— 关闭时保留在内存中的未保存内容,重启后自动载入为Untitled标签 -
"remember_open_files": true—— 记录所有打开过的文件路径,配合hot_exit实现完整会话还原
它们默认开启,但插件(如某些 UI 主题或项目管理工具)可能在用户设置中显式设为 false。打开 Preferences → Settings,确认右侧用户设置里没有覆盖这两项。别等关机后再查——出事前就该确认。











