sublime如何设置文件保存时自动备份?(防丢失策略)

8次阅读

sublime Text 本身不生成可手动恢复的备份文件,仅支持 atomic_save 和 hot_exit 防丢数据;需借助 AutoSave 插件配置保存钩子或 SideBarEnhancements 手动存档,而真正可靠的防丢失机制是启用 hot_exit 和 remember_open_files。

sublime如何设置文件保存时自动备份?(防丢失策略)

sublime text 保存时自动备份的实质限制

Sublime Text 本身不提供「保存时复制一份 .bak 文件」这类传统备份功能。它默认只做 atomic_save(原子写入)和 hot_exit(热退出),这些机制能防崩溃丢数据,但不生成可手动恢复的备份文件。真要实现类似 vim.filename.bakvs code 的「本地历史」效果,得靠插件或外部脚本配合。

用 AutoSave 插件 + 自定义保存钩子生成备份文件

推荐安装 AutoSave 插件(Package Control 可搜到),但它默认也不建备份。需手动修改其配置,触发保存后执行 shell 命令复制文件:

  • 打开 Preferences → Package Settings → AutoSave → Settings – User
  • 填入以下内容(以 macOS/linux 为例;windows 需改用 copy 命令):
{   "auto_save_hook": "cp '$file' '$file.bak'" }

注意:$file 是 AutoSave 内置变量,会被替换成当前文件绝对路径;单引号防止路径含空格出错。windows 用户请改用:

{   "auto_save_hook": "copy "$file" "$file.bak"" }

该方式简单直接,但每次保存都会覆盖旧 .bak,只保留最后一次备份。

用 SideBarEnhancements 实现右键「另存为备份」

如果你不需要全自动,而是希望「关键操作前手动留一手」,SideBarEnhancements 插件更可控:

  • 安装后,右键侧边栏文件 → Save Copy As...
  • 输入如 myfile.js.backup_20240520 这类带时间戳的名字
  • 它不干扰正常保存流程,也避免备份文件污染项目目录

适合对配置文件sql 脚本等敏感内容做快照式存档,比全自动备份更少误覆盖风险。

真正防丢失:别只盯备份,要配 hot_exit + remember_open_files

很多人忽略 Sublime 最强的内置保护其实是这两项:

  • hot_exit:关闭时不清除未保存修改,重启自动恢复
  • remember_open_files:记住上次打开的标签页和光标位置

Preferences → Settings 中确认它们是 true

{   "hot_exit": true,   "remember_open_files": true }

这比外部备份更可靠——只要没强制杀进程,意外断电/崩溃后重启 Sublime,所有未保存内容都在。唯一要注意的是:如果同时开了多个窗口,每个窗口的状态是独立保存的,别关错窗口。

自动备份只是补丁,核心防线其实是 Sublime 自己的会话管理。别让它被插件覆盖掉。

text=ZqhQzanResources