save_on_focus_lost是唯一真正防断电、崩溃、误关的原生自动保存机制;需在User Settings中添加"save_on_focus_lost": true并保存生效,它仅在窗口失焦时对已修改可写文件执行一次真实磁盘写入。

save_on_focus_lost 是唯一真正防断电、防崩溃、防误关的自动保存机制——它不靠轮询、不靠插件、不刷磁盘,只在你切出 Sublime 窗口时对已修改文件执行一次真实 write()。
怎么启用原生失焦即存(最稳防丢)
这是 Sublime Text 唯一被官方实现、无需插件、立即落盘的自动保存方式。
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置,确保编辑的是右侧「User Settings」 - 在花括号
{}内添加一行:"save_on_focus_lost": true,注意英文双引号和末尾逗号位置 - 按
Ctrl + S保存该设置文件,立刻生效,不用重启 - 验证:改几行 → 点击桌面/终端 → 切回 Sublime → 查看文件修改时间是否更新
它不会保存未改动、只读、或新建未命名(untitled:)文件——这是设计,不是 bug。多窗口模式下,从一个 Sublime 窗口切到另一个也算“失焦”,会触发保存。
为什么别写 auto_save、auto_save_interval 这类字段
这些键名在 Sublime 官方源码里根本不存在。加了不仅不生效,还会埋雷:
-
"auto_save": true、"auto_save_delay_in_seconds": 1、"auto_save_interval": 60全部被静默忽略,Sublime 不报错也不提示 - 少个逗号、引号没闭合,整个用户设置 JSON 加载失败,连
save_on_focus_lost都失效 - AutoSave 插件可能误读这些字段,以为“原生已接管”,直接禁用自己的核心逻辑,导致自动保存彻底失灵
- 不同教程混用
auto_save_delay_ms/auto_save_delay_milliseconds/auto_save_delay_in_ms,但截至 v4.1+,只有auto_save_delay_milliseconds被插件认
想“停笔几秒就存”?必须关掉 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 别设低于 1000;打字频繁时设 500 容易卡 UI;处理几百 MB 的 SQL 或日志文件,建议 ≥3000。
容易被忽略的细节:路径、权限与协同场景
看似简单的一行配置,实际运行中常因环境细节失效:
- 路径含中文、空格、括号时,部分 Sublime 4 版本会跳过保存——先用纯英文路径验证
-
untitled文件必须先Ctrl + S命名一次,否则save_on_focus_lost和 AutoSave 都不触发 - 顺手关掉
"hot_exit": false和"remember_open_files": false,避免多窗口下和save_on_focus_lost冲突 - Git 场景下,
save_on_focus_lost友好:不产生多余 diff;但 AutoSave 插件若配了auto_save_on_focus_lost,可能干扰 Webpack/nodemon 监听
真正防断电,靠的是失焦那一刻的真实落盘;所有“看起来像自动保存”的行为,如果不是由 save_on_focus_lost 或明确配置的 AutoSave 触发,大概率只是缓存或插件兜底——不可控,也不可靠。


















