能找回被误删的代码,取决于它是否曾保存过、路径是否没变、插件是否真在工作;Local History仅在文件已保存、按Ctrl+S、路径完全匹配三条件同时满足时才写入快照,空列表说明未触发存档,而非插件失效。

能找回被误删的代码,取决于它是否曾保存过、路径是否没变、插件是否真在工作——不是装了 Local History 就自动有历史,更不能靠 Ctrl+Z 撤回已关闭的标签页。
Local History 插件列表为空?先验证它有没有真正存档
空列表 ≠ 插件坏了,而是根本没触发快照写入。Local History 只在以下三个条件同时满足时才记录:
- 文件已保存(不再是
Untitled,且首次保存路径仍有效) - 你改完后按了
Ctrl+S(仅Ctrl+Z撤回不生成新快照) - 当前文件路径与最初保存路径完全一致(大小写、斜杠方向、扩展名全匹配)
验证方法:打开一个已有路径的文件(如 main.py),改一行 → Ctrl+S → 再改一行 → Ctrl+S → 按 Ctrl+` 看控制台,应出现类似 LocalHistory: saved snapshot for main.py@2026-10-19-14-22-05 的日志。没有?说明还没开始记录。
文件已删但曾保存过:必须在原路径重建才能调出历史
Local History 不依赖当前文件是否存在,只认完整路径。所以恢复流程是硬性的:
- 在**原始路径**(比如
/project/src/handler.js)新建一个同名空文件 - 立刻
Ctrl+S保存,让插件“认领”该路径 - 右键编辑区 →
Local History → Show History,历史版本才会出现
点击某条快照会在新标签页以只读方式打开;点 Restore 按钮会直接覆盖当前内容(不可逆)。注意:Windows 下若以管理员身份运行 Sublime,而 .sublime-history/ 落在用户目录,可能因权限问题静默失败——控制台看不到日志就是信号。
未保存就删了?别翻 Local History,去 Recovery/ 和 Session.sublime_session 挖
这类情况插件完全不管,得靠崩溃缓存机制。关键前提是:Sublime 刚异常退出(非正常关闭),且尚未重启覆盖旧缓存。
- 先彻底退出 Sublime(检查后台进程,macOS 注意菜单栏图标)
- 进对应路径:
Windows:C:\Users\你的用户名\AppData\Roaming\Sublime Text 3\Local\Recovery\
macOS:~/Library/Application Support/Sublime Text 3/Local/Recovery/
Linux:~/.config/sublime-text-3/Local/Recovery/ - 找以
recovery-开头、无扩展名或带.tmp的文件,直接用 Sublime 打开——内容通常是可读源码,不用解析 JSON - 若 Recovery 里没找到,再查同级的
Session.sublime_session,用外部编辑器打开,搜索你记得的变量名或注释关键词,在"buffers": [ ]区域里找"contents": ""字段
这两个缓存都只在异常退出后生成,正常退出不会写入,且每次重启都可能被覆盖——时间窗口很窄,动作要快。
BackupOnSave 和 Simple History 别混用,选一个就足够
二者底层冲突,同时启用会导致菜单失效或重复备份:
-
BackupOnSave:每次Ctrl+S都在指定目录生成独立副本(如main.py.2026-10-19-14-22-05),适合脚本扫描、手动 diff,但占磁盘空间 -
Simple History:版本存在 Sublime 本地数据库里,不产生额外文件,右键调用轻量,但外部工具无法直接读取
如果你刚删的是昨天改的关键逻辑,想快速比对差异,BackupOnSave 更可控;如果只是偶尔查一段漏掉的代码,Simple History 更省心。二者不可共存,禁用其中一个再重启。
最常被忽略的一点:Local History 的快照和 Ctrl+Z 完全无关,也和“最近打开的文件”(Ctrl+P)无关。它只忠于路径 + 保存动作。路径错一丁点、没按过 Ctrl+S、或者缓存已被覆盖,历史就不存在——不是技术问题,是触发条件没凑齐。


















