VSCode自动保存默认关闭,需同时配置files.autoSave和files.autoSaveDelay(如"afterDelay"配800~1200ms),并注意工作区设置优先级、排除无关文件及保存与格式化顺序。

VSCode 自动保存默认是关闭的,files.autoSave 默认值就是 "off",所以“没开启”不是异常,而是出厂状态。想让它真正起作用,必须手动配置,且不能只改一个参数。
为什么改了 settings 里“Auto Save”开关还是不生效
图形界面点开的“Files: Auto Save”下拉菜单,只是快捷入口,背后写入的是 settings.json。但很多人忽略了优先级:工作区(.vscode/settings.json)设置会覆盖用户级设置;远程开发(如 WSL/SSH)中,用户设置可能根本没加载到当前会话。
- 检查当前项目根目录下是否有
.vscode/settings.json,里面是否写了"files.autoSave": "off"—— 这会直接关掉自动保存 - 在命令面板运行
Developer: Open Settings (JSON),确认你编辑的是正确的配置文件(右上角会显示“User”或“Workspace”) - 如果用多根工作区,每个子文件夹都可能有自己的
.vscode/settings.json,需逐个排查
files.autoSave 设成 "afterDelay" 却没反应
这是最常见误配:"afterDelay" 模式本身不带延迟值,必须配合 files.autoSaveDelay 才能工作。缺了它,VSCode 就当没设这个模式,退回到 "off" 行为。
-
files.autoSaveDelay单位是毫秒,建议设为800~1200;设100在 WSL 或网络盘上容易卡顿 - 不要在用户设置里写
"files.autoSaveDelay": 1000却忘了配"files.autoSave": "afterDelay"—— 两者必须同时存在 - 如果只在图形界面选了
afterDelay,但没动Files: Auto Save Delay滑块,延迟值仍为 0,等于没设
保存后没触发运行?别指望 VSCode 自己“执行”
VSCode 的 files.autoSave 只管把内容写进磁盘,它不负责运行、编译、刷新浏览器或重启服务。所谓“保存即运行”,本质是靠外部工具监听文件变化来实现的。
- 前端项目:用
vite或webpack serve这类 dev server,它们自己监听src/下文件,files.autoSave只需确保修改落地即可 - Python/Go 等脚本语言:得自己建
.vscode/tasks.json,用nodemon或watchexec启一个后台监听进程,例如:watchexec -r --exts py --on-change "python main.py" - 避免装“Auto Run on Save”这类插件:它们绕过 VSCode 的保存生命周期,可能导致 Prettier 格式化失效、Git 脏检查跳过、甚至格式化和保存顺序错乱
哪些文件不该自动保存?用 files.autoSaveExclude 显式排除
不是所有文件都适合被自动保存。比如生成的 dist/、__pycache__/、日志文件或本地 mock 数据,频繁写入可能触发构建工具重复编译,或让 Git 提交记录混乱。
-
files.autoSaveExclude支持 glob 模式,例如:"**/dist/**"、"**/*.log"、"**/__pycache__/**" - 路径统一用
/,Windows 下也别写\ - 这个配置建议放在工作区
.vscode/settings.json中,避免影响其他项目
最容易被忽略的一点:自动保存和格式化(editor.formatOnSave)的执行顺序是固定的——先保存,再格式化。如果你开了 formatOnSave,又用了 afterDelay,就会出现“刚保存的代码还没来得及格式化,就又被下一次延迟保存覆盖”的情况。这时候得考虑用 onFocusChange 配合格式化,或者接受“保存+格式化”有半拍延迟。


















