sublime text防丢需组合配置:启用save_on_focus_lost保落盘、hot_exit与remember_open_files保内存恢复,autosave插件仅在idle时有效且须用正确字段名。

Sublime Text 默认不自动保存,关掉窗口前没按 Ctrl+S 就真丢了——这不是 bug,是设计。防丢必须靠组合配置,而不是单开一个“自动保存”开关。
用原生 save_on_focus_lost 最快见效
这是 Sublime 内置、零依赖、写入磁盘的真实保存机制,比任何插件都稳。
- 打开
Preferences → Settings,在右侧用户设置里加一行:"save_on_focus_lost": true - 保存后立即生效,不用重启,也不用装插件
- 它只在「整个 Sublime 窗口失焦」时触发(比如你切到浏览器或终端),不是标签页切换
- 和
hot_exit配合最可靠:前者保已修改内容落盘,后者保未保存内容进内存缓存 - 别和 AutoSave 插件的
auto_save_on_focus_lost同时开,可能重复写大文件,卡顿明显
想停笔几秒就存?必须用 AutoSave 插件 + 正确参数
原生没有“空闲后保存”逻辑,得靠插件,但默认配置基本无效——很多人配了没反应,是因为参数名或条件错了。
- 安装插件后,必须去
Preferences → Package Settings → AutoSave → Settings改,直接往用户设置里加auto_save_delay_in_seconds会被静默忽略 - 真正起作用的是:
"auto_save_delay_in_ms": 1500(单位毫秒),且仅在"auto_save_on_focus_lost": false时才启用 - 推荐最小可用配置:
{"auto_save_on_idle": true, "auto_save_delay_milliseconds": 1500}(注意字段名大小写和下划线) - 插件默认不处理未命名文件(
untitled),首次Ctrl+S命名前不会自动保存 - 路径含中文、空格或括号时,某些 Sublime 4 版本会跳过保存,先用纯英文路径验证
备份文件不是自动保存的副产品,得手动钩子或右键快照
Sublime 从不自动生成 .bak 文件,atomic_save 只保证写入不损坏,不留下副本。
- 要生成
filename.bak,得在 AutoSave 设置中加"auto_save_hook",例如 macOS/Linux:"cp '$file' '$file.bak'";Windows:"copy \"$file\" \"$file.bak\"" -
$file是绝对路径,单引号/双引号必须包裹,否则空格路径会截断 - 这个钩子每次覆盖旧
.bak,不是版本备份,只是最后一道“后悔药” - 对
.env、nginx.conf这类敏感文件,更推荐用SideBarEnhancements插件右键 →Save Copy As,手动加时间戳命名,完全可控
hot_exit 和 remember_open_files 才是防丢核心
很多人盯着自动保存,却忘了 Sublime 最强的内置保护其实是这两项——它们不依赖写入磁盘,而是把未保存内容存在内存里,崩溃后重启还能回来。
- 确认用户设置中有:
"hot_exit": true和"remember_open_files": true(默认通常已开启) - 它们只在进程没被强制杀掉时有效(比如正常关机、崩溃、断电后重启)
- 多个窗口状态独立保存,关错窗口会导致对应窗口的恢复状态丢失
- 如果同时开了
save_on_focus_lost,它和hot_exit是互补关系:前者保已改内容落盘,后者保还没来得及改的内容在内存里
真正容易被忽略的点是:自动保存 ≠ 自动备份,save_on_focus_lost ≠ 标签页切换保存,auto_save_delay_in_seconds 字段名在插件里根本不存在。配置前先看插件文档里的实际字段名和生效条件,比反复试错快得多。











