Sublime Text 唯一原生有效的自动保存机制是 save_on_focus_lost,需在 User Settings 中手动添加 "save_on_focus_lost": true;所有 auto_save 相关字段均为无效配置,可能干扰插件;如需空闲自动保存,必须使用 AutoSave 插件且须禁用 save_on_focus_lost。

Sublime Text 原生只有 save_on_focus_lost 这一个真正生效的自动保存机制,其他所有带 auto_save 字样的配置项(如 auto_save、auto_save_interval、auto_save_delay_in_seconds)在官方代码中根本不存在,加了不生效,还可能干扰插件。
怎么正确启用 save_on_focus_lost
这是唯一零依赖、真实落盘、开箱即用的防丢方案,不需要插件,也不需要重启:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板 - 确保编辑的是右侧「User Settings」(左侧是只读默认项)
- 在已有 JSON 的花括号
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他字段,末尾必须有逗号;引号必须是英文双引号;值必须是小写
true,不能写成True或"true" - 按
Ctrl + S保存该文件,立即生效
它只在你切出整个 Sublime 窗口(比如点到终端、浏览器、桌面)时触发,对已修改、可写、已命名的文件执行一次真实 write()。未改动、只读、新建的 untitled 文件不会被保存——这是设计行为,不是 bug。
为什么别往 User Settings 里写 auto_save 类字段
这些键名在 Sublime 官方源码和文档中完全不存在,加了等于白加,还容易埋坑:
-
"auto_save": true、"auto_save_interval": 60、"auto_save_delay_in_seconds": 1全部被 Sublime 解析器静默忽略,既不报错也不生效 - 某些版本的 AutoSave 插件会误读这些字段,以为“原生已启用”,从而禁用自身核心逻辑,导致自动保存彻底失灵
- 拼写混乱(如
auto_save_delay_msvsauto_save_delay_milliseconds)在 v4.1+ 中已部分失效,升级后突然不工作 - 一个 JSON 语法错误(比如少逗号、引号没闭合)会让整个用户设置加载失败,连
save_on_focus_lost都跟着失效
想实现“停笔几秒就存”?必须用 AutoSave 插件
save_on_focus_lost 不支持空闲触发,这个需求只能靠插件,但二者互斥,同时开启会导致重复保存、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 可能卡顿;对几百 MB 的 SQL 或日志文件,建议 ≥3000
容易被忽略的关键细节:AutoSave 插件在某些 Sublime 4 版本中需重启才加载(尤其从旧版升级后);文件路径含中文或特殊符号(如空格、括号)时,部分版本会跳过保存;Git 仓库里的临时文件也可能被插件主动排除——这不属于 bug,而是设计行为。


















