save_on_focus_lost是Sublime Text唯一原生、真实落盘、无需插件的失焦自动保存机制;需在User Settings中手动添加"save_on_focus_lost": true并严格遵循JSON语法,否则配置失效。

save_on_focus_lost 是 Sublime Text 唯一原生支持、真实落盘、无需插件的失焦自动保存机制。其他所有带 auto_save 字样的配置项(如 auto_save、auto_save_interval、auto_save_delay_in_seconds)在官方源码中根本不存在,加了不仅无效,还可能破坏配置或干扰插件行为。
怎么正确添加 save_on_focus_lost 到用户设置
这个配置必须手动写进 User Settings 的 JSON 文件,不能靠菜单勾选,也不能写在左侧只读的 Default Settings 里:
- 按
Ctrl + ,(Windows/Linux)或Cmd + ,(macOS)打开设置面板,确保你在编辑右侧「User Settings」 - 在已有 JSON 的花括号
{}内添加一行:"save_on_focus_lost": true - 注意:前面若有其他字段,末尾必须有英文逗号;引号必须是英文双引号;
true必须小写、不能加引号 - 按
Ctrl + S保存该文件,立即生效,无需重启 Sublime
为什么 save_on_focus_lost 没反应
它不是坏了,而是被几个硬性条件卡住了——这些不是 bug,是设计限制:
- 文件是新建未命名的(
untitled)——Sublime 不知道存哪,直接跳过 - 文件路径只读(如
/etc/hosts、Docker volume 挂载点、WSL 权限受限目录)——系统拒绝写入,Sublime 静默失败 - 你只是在 Sublime 内部切换 tab、点击侧边栏、呼出命令面板(
Ctrl + Shift + P)——这些都不算窗口失焦,不会触发 - 配置写错位置或格式:比如写在左侧 Default Settings、少引号、用中文冒号、多逗号——JSON 解析失败,整份用户设置加载失败,
save_on_focus_lost也跟着失效
save_on_focus_lost 和 AutoSave 插件能共存吗
不能。两者逻辑冲突,同时启用会导致重复保存、I/O 浪费,尤其对大文件(如 >5MB 日志、SQL 导出)或网络挂载盘,可能卡 UI 或引发文件锁冲突:
- 如果要用 AutoSave 实现“停笔几秒就保存”,必须先在 User Settings 中删掉或注释掉
"save_on_focus_lost": true - 安装插件后,配置入口是
Preferences → Package Settings → AutoSave → Settings – User,不是通用 User Settings - AutoSave v4.1+ 真正起效的字段只有两个:
"auto_save_on_idle": true和"auto_save_delay_milliseconds": 3000 -
auto_save_delay_milliseconds别设太小(如500),否则边打字边保存,UI 可能卡顿;对几百 MB 的日志或 SQL 文件,建议 ≥3000
验证是否生效的最简方法
改一个已命名、可写的文件(比如 test.py),输入几行文字,然后点击桌面或终端窗口,再切回 Sublime —— 如果标签页右上角的 ● 星号消失,且用 ls -l test.py(Linux/macOS)或属性查看(Windows)发现修改时间更新,说明已真实落盘。
记住:save_on_focus_lost 不保存未命名文件、不覆盖只读文件、不写入无改动的文件——这不是缺陷,是它防误操作和保安全的核心设计。











