最稳妥模式是onfocuschange:切出编辑器即保存,不依赖延迟;必须开启files.hotexit:onexit和window.restorewindows:all,并确保项目不在icloud/网络盘路径下。
在 macos 上配置 vs code 自动保存来防断电丢代码,核心不是“越快保存越好”,而是让修改尽可能及时落盘,同时搭配崩溃恢复兜底。关键在于选对触发时机 + 开启热退出 + 检查系统监听能力。
选最稳妥的自动保存模式:onFocusChange
这是 macOS 下兼顾安全与实用的首选。它在你离开当前编辑器(比如切到终端查文档、点开另一个文件标签、甚至点击侧边栏)时,立刻把当前文件写入磁盘——不依赖延迟计时,也不等窗口失焦,响应及时且不易漏。
- 打开 VS Code,按 Cmd + , 进入设置
- 搜索 files.autoSave
- 从下拉菜单中选择 onFocusChange
- 确认没有被工作区设置覆盖(检查项目根目录下的
.vscode/settings.json是否写了"files.autoSave": "off")
必须开启 hotExit 和窗口恢复
即使自动保存生效,万一断电或强制退出,未保存的编辑状态仍可能丢失。files.hotExit 是 VS Code 的最后一道本地缓存防线,它会在正常退出时保留所有未保存内容;配合 window.restoreWindows,重启后能原样还原打开的文件和光标位置。
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 在设置中搜索 hotExit,确保值为 onExit(macOS 默认已启用)
- 搜索 restoreWindows,设为 all 或 one(推荐 all)
- 这两项共同作用,让 VS Code 关闭再打开时弹出“恢复未保存的文件”提示,而不是空白启动
检查 macOS 文件系统监听是否可靠
VS Code 依赖 macOS 的 kqueue 机制监听文件变更。但某些场景(如使用 iCloud 同步目录、挂载网络盘、或大量小文件频繁修改)可能导致保存后终端/浏览器没反应——不是没保存,而是监听失效。此时需手动增强稳定性:
- 确认你的项目不在 iCloud Drive 或 Dropbox 同步路径下(尤其是
~/Library或~/Documents下的软链接目录) - 如果用 Webpack/Vite 等工具,检查其配置是否启用了轮询:
watchOptions: { usePolling: true, poll: 1000 } - Node.js 直接运行时,避免用
nodemon默认监听 symlink 源目录,应明确指定真实路径
不建议用 afterDelay 防断电
虽然 afterDelay 看似可控,但它本质是“停顿后才保存”。哪怕设成 500ms,断电前最后半秒的输入依然会丢失。而 onFocusChange 在你自然操作(如写完一行去终端执行命令)的瞬间就完成落盘,更贴合真实开发节奏,对性能也无明显影响。










