sublime text 启动时不自动打开上次项目,是因为仅设restore_open_projects: true不够,必须同时满足:显式保存.sublime-project文件、关闭前项目处于激活状态、启动时无命令行参数。

Sublime Text 启动时不自动打开上次项目,大概率不是功能坏了,而是项目没被“正式认领”过——它只恢复显式保存过的 .sublime-project 文件,不恢复临时工作区或未命名项目。
为什么 restore_open_projects 设为 true 还不生效
这个设置只是“允许恢复”,但真正触发项目加载需要三个硬性条件同时满足:
-
Project → Save Project As…必须执行过一次,且路径里不能有中文、空格或特殊符号(比如~/Projects/my-app.sublime-project可以,~/Projects/我的项目.sublime-project容易失败) - 关闭 Sublime 前,该项目必须处于激活状态(窗口标题栏显示项目名,或菜单
Project下该项目名带对勾) - 启动时不能带命令行参数,例如
subl .、subl --new-window或快捷方式里误加了--multiinstance,这些会强制跳过会话恢复逻辑
remember_open_files 和 hot_exit 到底管什么
这两个设置控制的是“文件+窗口”层面的恢复,和项目加载是两套机制,但互相依赖:
-
remember_open_files: true是前提:没有它,连文件标签都不会还原,项目自然无从谈起 -
hot_exit: false是关键:设为true会让 Sublime 表面退出、实则后台驻留;一旦崩溃或被 kill,Auto Save Session.sublime-session就不会更新,下次启动就只剩空窗口 - 它们不直接决定项目是否加载,但若文件/窗口都恢复不了,项目上下文也就断了
检查会话文件是否存在且有效
Sublime 全靠本地一个 JSON 文件记状态,路径错、权限锁、内容为空都会导致失效:
- Windows 路径:
%APPDATA%\Sublime Text\Local\Auto Save Session.sublime_session - macOS 路径:
~/Library/Application Support/Sublime Text/Local/Auto Save Session.sublime-session - Linux 路径:
~/.config/sublime-text-4/Local/Auto Save Session.sublime-session - 如果该文件存在但内容是空对象
{}或时间戳明显滞后,说明上次退出没写入成功——90% 是hot_exit: true+ 异常关闭导致的
真正容易被忽略的是:项目恢复不是“记住上次关机前开了什么”,而是“最后一次显式保存的项目 + 正常退出时的会话快照”两者严格匹配。少一个环节,就只能手动 Project → Open Project…。











