Local History插件Show History为空并非插件失效,而是未满足三条件:文件已保存(非untitled)、修改后执行过Ctrl+S、当前路径与原始路径完全一致;恢复需在原路径新建同名文件并保存后调取历史。

Sublime Text 本身不保存文件修改记录,所谓“本地历史版本回溯”必须依赖插件,且只在满足硬性条件时才真正可用——装了插件 ≠ 自动有历史,没保存过的文件永远没有快照。
Local History 插件为什么 Show History 是空的
空列表不是插件失效,而是它根本没触发备份。Local History 只在以下三者同时满足时写入快照:
- 文件已执行过
Ctrl+S(不再是untitled标签页) - 修改后至少有一次新的
Ctrl+S(仅按Ctrl+Z撤回但不保存,不会生成快照) - 当前文件路径与插件记录的原始路径完全一致(含大小写、斜杠方向、扩展名;拖拽打开 ≠ 项目树中打开)
验证是否生效:改一行 → Ctrl+S → 再改一行 → Ctrl+S → 右键 → Local History: Show History,这时应看到至少两条带时间戳的记录。若仍为空,按 Ctrl+` 打开控制台,检查是否有 LocalHistory: saved snapshot for main.py 日志;没有日志,优先确认 Preferences → Package Settings → Local History → Settings 中 "enabled": true 和 "auto_save": true 是否都为真。
恢复已删除但曾保存过的文件
Local History 不关心当前文件是否存在,只认完整路径。恢复流程必须严格按顺序来:
- 在**原路径**新建一个同名空文件(例如原路径是
/project/src/utils.js,就得新建到这个精确位置) -
Ctrl+S保存它,让插件“认领”该路径 - 右键 →
Local History: Show History,列表就会出现该路径的历史版本
点击某条快照,会在新标签页以只读方式打开;想覆盖当前内容,右键选 Replace Current File —— 注意:它会直接覆盖当前未保存的改动,无二次确认。
BackupOnSave 和 Simple History 别混用
二者都依赖 Ctrl+S 触发,但机制和用途完全不同,不能共存:
-
BackupOnSave:每次保存都在你指定目录下生成独立副本,如main.py.2026-06-15-00-15-22;适合需要外部工具扫描、手动diff或批量清理的场景 -
Simple History:版本存在 Sublime 的本地数据库(%APPDATA%\Sublime Text\Packages\User\Local History\或~/Library/Application Support/Sublime Text/Packages/User/Local History/),不产生额外文件,右键调用轻量,但无法被 Git 或脚本直接读取
如果你刚删掉关键逻辑想快速比对两版差异,BackupOnSave 更可控;如果只是偶尔点开看看昨天改了哪段,Simple History 更省心。二者共存会导致菜单冲突或重复备份,选一个就够了。
为什么刚保存的内容没出现在历史里
Local History 默认有约 1 秒延迟写入,且受 Sublime 异步 I/O 调度影响。常见干扰点:
- 文件正被其他进程占用(如 Webpack 编译、Git 提交、杀毒软件扫描)→ 备份静默失败
-
.sublime-history/所在磁盘空间不足,或用户目录权限受限 → 插件跳过写入无提示 - 启用了
hot_exit: true,而插件在退出瞬间来不及刷盘 → 建议设为false并正常退出
最稳妥的做法:改完关键段落后,手动按一次 Ctrl+S,稍等半秒再看历史菜单——别等自动 120 秒。真正可靠的历史回溯永远建立在 Git 提交基础上;Local History 只是断网、忘 git add 时的临时补救。


















