sublime text 唯一真正生效的自动保存机制是 save_on_focus_lost: true,它在窗口失焦时立即写入磁盘,防崩溃断电;其他所有 auto_save 相关配置均无效且可能干扰插件。

Sublime Text 原生只有 save_on_focus_lost 一个真正生效的自动保存开关,它在你切出窗口时立刻写入磁盘,是防崩溃、断电、误关的最可靠手段;其他所有带 auto_save 字样的配置项均无效,且可能干扰插件行为。
怎么正确启用 save_on_focus_lost 防丢
这是 Sublime 内置、无需插件、真实落盘的唯一机制。它不监听输入、不计时、不轮询,只在你点击终端、浏览器、桌面等外部程序时,对当前已修改且可写的文件执行一次 write()。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置,确保编辑的是右侧「User Settings」 - 在花括号
{}内添加一行:"save_on_focus_lost": true,注意英文双引号和末尾逗号位置 - 按
Ctrl + S保存该文件,立即生效,无需重启 - 验证方法:改几行字 → 点击桌面 → 切回 Sublime → 查看文件修改时间是否更新
它不会保存未改动的文件、只读文件或新建的 untitled 文件——这是设计,不是 bug。
为什么 auto_save、auto_save_interval 这类字段必须删掉
这些键名在 Sublime 官方源码中根本不存在。加了不仅不触发任何保存逻辑,还会引发隐性问题:
-
"auto_save": true、"auto_save_delay_in_seconds": 1、"auto_save_interval": 60全部被 Sublime 解析器静默忽略 - 某些版本的 AutoSave 插件会误判这些字段为“原生已启用”,从而禁用自身核心逻辑,导致自动保存彻底失灵
- 不同拼写混用(如
auto_save_delay_ms/auto_save_delay_milliseconds)在 v4.1+ 中已部分失效,升级后突然不工作 - 一个语法错误(比如少逗号、引号没闭合)会让整个用户设置加载失败,连
save_on_focus_lost都跟着失效
想“停笔几秒就存”?必须用 AutoSave 插件,且配置位置和字段名不能错
原生机制不支持空闲触发,save_on_focus_lost 和 AutoSave 插件互斥。同时开启会导致重复保存、I/O 浪费,编辑大日志或被外部进程读取时可能卡死或冲突。
- 先在 User Settings 中删掉或注释掉
"save_on_focus_lost": true - 按
Ctrl + Shift + P→ 输入Package Control: Install Package→ 搜索安装AutoSave(作者 randy3k,v4.1+) - 配置入口是
Preferences → Package Settings → AutoSave → Settings – User,不是通用 User Settings - 最小可用配置只有两个字段:
"auto_save_on_idle": true和"auto_save_delay_milliseconds": 1500 -
auto_save_delay_milliseconds是唯一有效的延迟字段(单位毫秒),设太小(如500)会导致边打字边保存,UI 卡顿;对 >5MB 的 SQL 或日志文件,建议 ≥3000
容易被忽略的细节:atomic_save 和 hot_exit 不是自动保存,但影响数据安全
atomic_save 控制写入是否原子化(先写临时文件再替换),它能防止崩溃时文件损坏,但**不会自动触发保存动作**;hot_exit(默认开启)让关闭窗口时暂存未保存内容到内存,但断电或崩溃后仍会丢失——所以 save_on_focus_lost 才是真正防丢的第一道防线。











