Sublime Text唯一原生防丢方案是启用save_on_focus_lost:在User Settings中添加"save_on_focus_lost": true,切出窗口时自动保存已修改可写文件,跳过只读、未命名及未改动文件,无需插件且立即生效。

Sublime Text 没有“自动保存 + 历史版本”一体化功能,必须拆解为两个独立动作:用 save_on_focus_lost 防丢(实时落盘),再用 Local History 或 AutoSave 插件生成可回溯的备份文件——二者逻辑不重叠、不能混用,配置错位就等于白设。
怎么只靠原生设置防丢?别碰 auto_save 字段
Sublime 唯一真正生效的自动保存机制是 save_on_focus_lost,它在你点击终端、浏览器或桌面时,对已修改且可写的文件执行一次磁盘写入。这不是轮询、不计时、不监听输入,但足够扛断电和崩溃。
- 打开
Preferences → Settings,确保编辑右侧「User Settings」 - 在 JSON 花括号内添加:
"save_on_focus_lost": true,注意英文双引号、逗号位置、值必须是小写true - 按
Ctrl+S保存,立即生效,无需重启 - 验证方法:改几行 → 点击桌面 → 切回 Sublime → 查看文件修改时间是否更新
- 它跳过未改动、只读、新建的
untitled文件——这是设计,不是 bug - 删掉所有
auto_save、auto_save_interval、auto_save_delay_in_seconds类字段,它们在源码中根本不存在,加了不仅无效,还可能让AutoSave插件误判自身逻辑而停摆
Local History 怎么配才真存快照?路径不能乱动
Local History 是最接近“历史版本”的方案,但它不监听文件系统,只响应 Sublime 内部的保存事件(比如你按 Ctrl+S 或 save_on_focus_lost 触发的那次写入),然后在项目根目录下生成 .sublime-history/ 文件夹存档。
- 安装插件后,默认每 2 分钟自动抓取一次;也可手动调用:
Ctrl+Shift+P→ 输入Local History: Save Current File - 快照只对已保存过(即有真实路径)、被 Sublime 编辑修改过的文件生效;Git 拉取覆盖、命令行直接改文件等外部变更不会触发
- 别把
.sublime-history/改到项目外路径,否则换机器或 Git 同步时历史就丢了 - 它不加密、不压缩、不校验,仅用于临时回滚;重要项目仍需
git commit或外部备份 - 如果项目放在
/System/、OneDrive 同步目录或网络盘,可能因权限不足静默失败(无报错)
AutoSave 怎么开 backup_on_save 才生成 .bak?配置入口不能错
想每次保存时顺手复制一份 file.js.bak,得用 AutoSave 插件并启用 backup_on_save,但默认不开启,且必须通过专用配置页设置,不是往通用 User Settings 里硬塞字段。
- 配置入口是:
Preferences → Package Settings → AutoSave → Settings – User(不是直接改User Settings) - 最小有效配置只有两行:
{"backup_on_save": true, "auto_save_file": true} - 备份默认存到项目根目录下的
.sublime-backup/;若项目在 OneDrive 或网络盘,可能因文件被锁定而静默失败 -
backup_on_save每次覆盖旧.bak,只留最后一份——不是版本管理,只是“后悔药” -
save_on_focus_lost和backup_on_save不能同时开:前者切出窗口就写盘,后者在 Sublime 主动保存时触发,叠加会导致同一文件 1 秒内被写两次,大日志或被 Webpack 实时读取的文件容易卡死或冲突
最容易被忽略的是兼容性细节:Sublime Text 4(Build 4143+)下,老版 AutoSave 或 FileDiffs 可能因 API 不兼容而失效,控制台报 AttributeError: 'NoneType' object has no attribute 'file_name';务必装最新版(作者 r-wood,GitHub last updated 2023)。Windows 用户若启用了 OneDrive 同步,备份文件可能被临时锁定——关掉同步测试一次,比反复调配置更省时间。


















