atom自动保存是失焦即存而非实时保存,需版本≥1.27、配置写为'core': 'autosave': true(两空格缩进),生效唯一验证方式是设置页core下autosave开关亮起;不支持时间间隔,只读/ftp/未命名文件不生效,编译需build-on-save与atom-build-sass等组合。

Atom 的自动保存不是“改一个字符就存”,而是「失焦即存」——只要没切出编辑器,文件标题仍带 * 号,就还没落盘。这个行为从 1.27 版本起由 core.autosave 控制,原生不支持时间间隔或实时监听,装错插件反而会导致冲突或重复保存。
怎么确认 autosave 已真正启用
别信配置文件改了就生效。唯一可信的验证方式是:打开设置(Ctrl+, 或 Cmd+,),左侧选 Core,往下拉找到 Autosave 开关——它必须是亮起状态。如果看不到这个选项,说明 Atom 版本低于 1.27,该升级了;如果看到但开关是灰色或点不动,大概率是残留了旧版 autosave 插件,要去 ~/.atom/packages/(macOS/Linux)或 %USERPROFILE%\.atom\packages\(Windows)里删掉整个 autosave 文件夹。
手动改 config.cson 更可靠,但必须写成:
'core': 'autosave': true
注意:两空格缩进、不能用 Tab、不能漏掉 core 层级、不能套花括号、键名不能加引号。写成 autosave: true 或 {"core": {"autosave": true}} 都无效。
为什么改了配置还是不保存
常见失效场景不是配置错了,而是触发条件没满足:
- 当前文件是未命名的(
untitled),core.autosave直接跳过,不报错也不提示 - 文件挂载在 FTP 路径或设为只读,同样被忽略
- 你一直在当前 tab 打字,没点其他 tab、没切到浏览器、没点菜单栏、没碰状态栏——那就不会保存,* 号会一直挂着
- 关闭窗口前会强制触发一次保存,但这不是日常依赖项,别当成兜底方案
如果你真需要「编辑即存」,得额外装 atom-autosave-onchange,但它会在你敲到一半的 JSON 缺个 } 时就把错误内容刷进磁盘,后续编译直接失败。
autosave 和 build-on-save 怎么配合才不白配
Atom 本身不监听「保存事件」去跑构建任务。只开 core.autosave,并不会触发 Sass 编译或 Babel 转译。必须组合两个东西:
-
build-on-save:负责监听保存动作并触发构建流程 -
atom-build-sass或language-babel:负责实际执行编译逻辑
漏掉任意一个,都会出现「文件存了,但 CSS/JS 没生成」的情况。另外注意:language-babel 要求右下角 language mode 显式设为 Babel ES6 JavaScript,否则 transpileOnSave: true 完全不响应。
别信 autosaveInterval 这种配置
网上很多教程说在 config.cson 里加 'autosaveInterval': 60000 就能实现定时保存,这是混淆了 Nuclide 或过时插件的配置方式。core.autosave 原生只有 true/false 两种状态,没有延迟参数。所谓「间隔保存」只能靠社区插件实现,但多个保存逻辑共存(比如 core.autosave + atom-autosave-onchange 同时开)容易引发重复保存、磁盘 I/O 冲突,甚至把半截代码写坏。
最常被忽略的一点:Atom 已于 2022 年 12 月正式停止维护,apm 服务下线,所有插件无法安装或更新。你现在能改的只有本地 config.cson,而 core.autosave 是少数至今仍稳定工作的功能之一——前提是版本 ≥ 1.27,且没被旧插件污染。











