sublime默认不生成.bak备份文件,需通过autosave插件配置auto_save_hook实现;定时保存单位为毫秒且仅在auto_save_on_focus_lost为false时生效;失焦保存优先级更高;手动“save copy as”更安全可控;hot_exit与remember_open_files是防丢核心机制。

Sublime 本身不生成 .bak 备份文件,得靠插件或钩子手动实现
很多人以为 Sublime 像 Vim 或 Notepad++ 那样默认保存时顺手复制个 .bak,其实它压根没这功能。它的 atomic_save 只保证写入不中断、不损坏原文件,但不会留副本;hot_exit 和 remember_open_files 能恢复未保存内容,可一旦你点了“保存并关闭”,又没开自动保存,那上一秒改的代码就真没了。
- 真正能生成
.filename.bak的,只有通过AutoSave插件配置auto_save_hook - Windows 用户注意:
copy命令对路径空格敏感,必须用双引号包裹"$file",单引号在 cmd/powershell 里不生效 - macOS/Linux 用户用
cp更稳,但记得加单引号防止空格截断:'$file' - 这个钩子每次保存都会覆盖旧
.bak,只保留最后一次——不是版本备份,只是“后悔药”
AutoSave 插件的延迟单位是毫秒,不是秒,配错就等于没开
装完 AutoSave,很多人去改 auto_save_delay_in_seconds,结果发现设成 1 完全不触发。因为插件实际读的是 auto_save_delay_in_ms(毫秒),而且仅在 auto_save_on_focus_lost 为 false 时才起作用——也就是说,你得关掉“失焦保存”,才能启用定时保存。
- 想让编辑 3 秒无操作就存:配
"auto_save_delay_in_ms": 3000,同时确保"auto_save_on_focus_lost": false - 想失焦就存(更安全):直接开内置的
"save_on_focus_lost": true,不用装插件,也不受毫秒/秒混淆影响 - 两个机制可以共存,但优先级不同:失焦保存 > 定时保存。如果开了
save_on_focus_lost,插件的定时逻辑可能被跳过
右键“另存为备份”比全自动更可控,尤其适合配置类文件
如果你改的是 nginx.conf、.env 或 SQL 脚本,全自动覆盖 .bak 反而危险——比如改错两版后才发现上一个 .bak 已被覆盖。这时候 SideBarEnhancements 的手动快照更靠谱。
- 安装后,右键侧边栏文件 →
Save Copy As,名字里加时间戳,比如db.sql.backup_20260322 - 它不走任何钩子或后台任务,不干扰当前编辑流,也不会因插件崩溃失效
- 备份文件和源文件同目录,但你完全掌控命名和时机,适合上线前、合代码前这类关键节点
最该开的其实是 hot_exit + remember_open_files,它们才是防丢主力
很多人折腾备份脚本、钩子、插件,却忘了 Sublime 自带的这两个开关才是数据不丢的底层保障。只要没被强制杀进程(比如 kill -9 或任务管理器“结束任务”),哪怕断电、崩溃、意外退出,重启后所有标签页、光标位置、未保存修改全在。
- 确认开启方式:打开
Preferences → Settings,右侧用户设置里必须有"hot_exit": true和"remember_open_files": true - 注意多窗口陷阱:每个窗口的状态独立保存,别关错窗口——关了 A 窗口,B 窗口的恢复提示不会弹出来
- 这个机制不依赖插件、不写磁盘备份、不占空间,但唯一前提是你用正常方式退出(点红叉、菜单退出),而不是暴力杀进程
真正容易被忽略的点是:这些设置只管“会话状态”,不管“文件内容是否已落盘”。所以 hot_exit 能让你看到未保存的修改,但万一硬盘故障或系统崩溃导致缓存损坏,还是得靠 auto_save_hook 或外部同步兜底。防丢不是单点加固,是分层设防。











