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

发布时间 - 2026-02-02 00:00:00    点击率:
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_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 Text\Local\Session.sublime_session
  • Linux:~/.co

    nfig/sublime-text/Local/Session.sublime_session

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

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


# linux  # sublime  # windows  # 杀毒软件  # app  # session  # mac  # macos  # win  # cos 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在万网ECS上快速搭建专属网站?  如何为不同团队 ID 动态生成多个“认领值班”按钮  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  北京的网站制作公司有哪些,哪个视频网站最好?  如何确认建站备案号应放置的具体位置?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel怎么实现验证码(Captcha)功能  Java垃圾回收器的方法和原理总结  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在万网开始建站?分步指南解析  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何构建满足综合性能需求的优质建站方案?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何撰写建站申请书?关键要点有哪些?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  C#如何调用原生C++ COM对象详解  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何快速搭建FTP站点实现文件共享?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  历史网站制作软件,华为如何找回被删除的网站?  EditPlus 正则表达式 实战(3)  JavaScript实现Fly Bird小游戏  Swift中循环语句中的转移语句 break 和 continue  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Python正则表达式进阶教程_复杂匹配与分组替换解析  大连 网站制作,大连天途有线官网?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  java获取注册ip实例  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  JavaScript常见的五种数组去重的方式  node.js报错:Cannot find module 'ejs'的解决办法  网站建设保证美观性,需要考虑的几点问题!  JavaScript Ajax实现异步通信  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何在云指建站中生成FTP站点?  Laravel如何使用Eloquent进行子查询  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  再谈Python中的字符串与字符编码(推荐)  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel怎么实现模型属性的自动加密