Sublime Text 默认启用 hot_exit,但需同时设置 exit_timeout 为10、remember_open_files 为true才能完整恢复上次状态;macOS用Cmd+Q、Windows用Alt+F4退出才生效,且仅恢复退出前仍打开的文件。

Sublime Text 默认就支持记住上次关闭时的文件和窗口状态,关键在于 hot_exit 设置是否启用——它不是“需要手动开启的功能”,而是默认开启、但可能被意外关掉的开关。
确认 hot_exit 是否已启用
这个设置控制 Sublime 是否在退出时不真正关闭编辑器进程(类似“挂起”),从而保留所有打开的标签页、光标位置、未保存的修改等。如果关闭后重开发现一切清空,大概率是它被设成了 false。
检查方式:
- 菜单栏 → Preferences → Settings
- 在右侧用户设置(User Settings)中查找
"hot_exit" - 如果没有,就手动加一行;如果值是
false,改成true
{
"hot_exit": true
}
hot_exit 依赖于 exit_timeout 和 remember_open_files
单独设 hot_exit 为 true 不够,它需要两个配套行为配合才能完整还原上次状态:
-
exit_timeout:决定 Sublime 在收到退出指令后等待多久才真正终止进程。默认是0(立即退出),这会让hot_exit失效。建议设为10(单位毫秒,足够写入状态) -
remember_open_files:控制是否在下次启动时自动恢复上次打开的文件列表。必须为true,否则即使hot_exit生效,重启后也只看到空窗口
三者要一起配齐:
{
"hot_exit": true,
"exit_timeout": 10,
"remember_open_files": true
}
Windows/macOS/Linux 下的行为差异与常见失效原因
不同系统对“退出”的定义不同,容易导致 hot_exit 看似没生效:
- macOS 上用
Cmd+Q是标准退出,hot_exit正常工作;但单纯关掉最后一个窗口(Cmd+W)不会触发保存状态,需确保是真正退出应用 - Windows 上任务栏右键 → “关闭窗口” ≠ 退出程序,可能绕过
hot_exit流程;务必用Alt+F4或菜单 File → Exit - Linux(尤其是 GNOME)有时会拦截退出信号,可尝试在终端运行
subl --command "exit"测试是否能触发热退出 - 插件冲突:某些插件(如
AutoSave、ProjectManager)会覆盖窗口生命周期逻辑,建议临时禁用插件验证
恢复失败时先检查 Session 文件
Sublime 实际把状态存在本地 Session.sublime_session 文件里,路径因系统而异:
- macOS:
~/Library/Application Support/Sublime Text/Local/Session.sublime_session - Windows:
%APPDATA%\Sublime Text\Local\Session.sublime_session - Linux:
~/.config/sublime-text/Local/Session.sublime_session
如果该文件为空、权限错误或被杀毒软件锁定,hot_exit 就无法写入或读取。可手动备份此文件,或删掉它让 Sublime 重建(注意:会丢失当前未保存的热退出状态)。
真正容易被忽略的是:它不恢复“已关闭但未保存的文件”——只恢复退出前仍处于打开状态的标签页。如果你习惯先关掉所有标签再退出,那重启后自然什么都没有。










