Sublime如何记住上次关闭时打开的文件和窗口状态? (hot_exit设置)

8次阅读

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

Sublime如何记住上次关闭时打开的文件和窗口状态? (hot_exit设置)

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_exittrue 不够,它需要两个配套行为配合才能完整还原上次状态:

  • 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" 测试是否能触发热退出
  • 插件冲突:某些插件(如 AutoSaveProjectManager)会覆盖窗口生命周期逻辑,建议临时禁用插件验证

恢复失败时先检查 session 文件

Sublime 实际把状态存在本地 Session.sublime_session 文件里,路径因系统而异:

  • macos~/Library/application Support/Sublime Text/Local/Session.sublime_session
  • Windows:%APPDATA%Sublime TextLocalSession.sublime_session
  • Linux:~/.config/sublime-text/Local/Session.sublime_session

如果该文件为空、权限错误或被杀毒软件锁定,hot_exit 就无法写入或读取。可手动备份此文件,或删掉它让 Sublime 重建(注意:会丢失当前未保存的热退出状态)。

真正容易被忽略的是:它不恢复“已关闭但未保存的文件”——只恢复退出前仍处于打开状态的标签页。如果你习惯先关掉所有标签再退出,那重启后自然什么都没有。

text=ZqhQzanResources