Sublime Text 的 session 是自动保存的工作状态快照,默认启用但恢复受退出方式、路径有效性等隐式条件控制;--restore 参数仅在干净退出后有效,手动编辑 Session.sublime_session 不推荐,恢复失败多因非正常退出或路径变更。

Sublime Text 的 session 本质是自动保存的当前工作状态快照,不是独立功能模块,也不需要手动“开启”。它默认启用,但恢复行为受多个隐式条件控制——多数人打不开上次文件,问题通常出在配置或操作时机上。
为什么 sublime_text --restore 没反应?
这是最常被忽略的启动方式问题。Sublime 默认不通过命令行参数触发会话恢复;--restore 仅在 Sublime 完全退出后、且未被强制杀死(如 kill -9)的前提下才有效。更可靠的方式是直接双击图标或使用桌面快捷方式启动。
- 若用终端启动,应直接运行
sublime_text(不带参数),而非sublime_text --restore -
macOS 上通过 Dock 启动等价于
open -a "Sublime Text",可正常恢复 - Windows/Linux 下若用脚本启动并加了
--command等参数,会跳过会话恢复流程
Session.sublime_session 文件在哪?能手动编辑吗?
该文件位于 Sublime 的数据目录下,路径因系统而异:~/Library/Application Support/Sublime Text/Local/Session.sublime_session(macOS)、%APPDATA%\Sublime Text\Local\Session.sublime_session(Windows)、~/.config/sublime-text/Local/Session.sublime_session(Linux)。它是 JSON 格式,但含大量内部状态字段(如视图滚动偏移、光标位置、折叠状态),**不建议手动编辑**。
- 修改后若格式错误或字段缺失,Sublime 启动时会静默忽略该文件,回退到空窗口
- 想备份特定工作区,推荐用
Project → Save Project As…生成.sublime-project文件,它可安全编辑且支持版本控制 -
Session.sublime_session每 5 秒自动写入一次,关机断电可能导致最后几秒状态丢失
哪些操作会导致会话无法恢复?
会话恢复失败往往不是 Bug,而是 Sublime 主动放弃加载的保护行为。以下情况会触发跳过恢复:
- 启动时按住
Shift键(macOS/Windows/Linux 均有效),会强制进入“无会话”模式 - 存在未关闭的弹窗(如保存提示、插件报错对话框),Sublime 会等待交互完成后再恢复,看起来像“卡住”
- 上次退出时有未保存的编辑器标签页,且当前工作目录已被删除或权限变更,对应文件将被跳过(不会报错,只留空白标签)
- 安装了某些插件(如
AutoSave或自定义退出钩子),可能拦截或覆盖默认会话逻辑
{
"workspaces": [
{
"workspace_name": "Default",
"folders": [
{
"path": "/Users/me/project"
}
],
"file_history": [
"/Users/me/project/src/main.py",
"/Users/me/project/README.md"
]
}
]
}
真正影响恢复成功率的是「退出是否干净」和「路径是否存在」。如果经常遇到恢复失败,优先检查退出前是否有崩溃、kill -9、或磁盘满导致写入失败——这些不会报错,但会让 Session.sublime_session 变成空文件或损坏 JSON。










