sublime text 启动时不自动打开上次文件夹,因仅依赖合法.sublime-project文件+正常退出+hot_exit:true+restore_open_projects和remember_open_files均为true,且启动不能带命令行参数。

Sublime Text 启动时不会自动打开上次文件夹,除非你已显式保存为项目且满足会话恢复全部条件。 它不记录“最后拖进来的文件夹”,只认 .sublime-project 文件 + 正常退出 + 未被命令行覆盖的会话状态。很多人反复改设置却无效,问题几乎都出在“没真正保存项目”或“退出方式不对”上。
Project → Save Project As… 是硬性前提
Sublime 不会把临时打开的文件夹当项目。哪怕你双击文件夹、用 subl . 打开、甚至窗口标题栏显示了路径,只要没走菜单操作,它就认为是“无项目状态”。
- 必须手动执行
Project → Save Project As…,存成myproject.sublime-project - 保存后,窗口标题栏应出现项目名(或
Project菜单下该项目带对勾) - 如果只是“打开文件夹”,再关掉——下次启动时不会加载该文件夹
-
.sublime-project文件内容必须合法(至少含"folders": [{ "path": "..." }])
restore_open_projects 和 remember_open_files 必须同时为 true
restore_open_projects 控制是否加载项目配置(如构建系统、文件夹过滤),remember_open_files 控制是否还原标签页。两者缺一不可,且都默认为 true,但容易被误关。
- 检查用户设置(
Preferences → Settings右侧)是否含这两项,且值不是false - 不要只看默认设置,用户设置里写
"restore_open_projects": false会直接禁用项目恢复 -
"hot_exit": false更关键:设为true会导致退出时不写入会话,Auto Save Session.sublime_session文件可能为空或陈旧
启动方式会直接绕过会话恢复
任何带命令行参数的启动,都会让 Sublime 放弃加载上次会话。这不是 bug,是设计逻辑。
-
subl .、subl /path/to/folder、subl --new-window全部跳过恢复流程 - 桌面快捷方式目标字段里若含参数(比如
sublime_text.exe --multiinstance),同样失效 - 正常双击图标、从 Dock/Launcher 启动、或终端执行纯
subl(无参数)才触发恢复 - 想固定打开某项目?用
subl --project /path/to/project.sublime-project,但这和“恢复上次”是两套机制
会话文件损坏或路径错位是静默失败点
Sublime 全靠一个 JSON 文件存状态:Auto Save Session.sublime_session。它不存在、为空、或权限不对,恢复就彻底失效,且不报错。
- Windows 路径是:
%APPDATA%\Sublime Text 4\Local\Auto Save Session.sublime_session(注意空格和版本号) - macOS 是:
~/Library/Application Support/Sublime Text/Local/Auto Save Session.sublime_session(不是Sublime Text 4) - Linux 是:
~/.config/sublime-text-4/Local/Auto Save Session.sublime-session(注意短横线和大小写) - 如果该文件存在但内容是
{}或只有"workspaces": [],说明上次退出没成功写入——大概率是hot_exit: true+ 强制关闭导致的
最容易被忽略的是:项目必须处于激活状态关闭,且 Auto Save Session.sublime_session 文件必须在退出瞬间完成落盘。热退出、异常崩溃、杀进程、快捷方式带参——这些都不会留下可恢复的状态,但 Sublime 也不会告诉你哪里断了。











