VSCode真正关闭自动保存需设files.autoSave为"off",并确认无工作区设置覆盖、无格式化插件干扰、无第三方扩展代劳;新建文件须先保存再编辑,运行代码前务必手动Ctrl+S。

files.autoSave 设为 "off" 才真正关闭自动保存
VSCode 默认就是 files.autoSave 为 "off",但很多人装了插件或改过设置后,它被悄悄覆盖成 "afterDelay" 或其他值。直接在设置 UI 搜索 “Auto Save”,把下拉菜单选成 off 即可;更稳妥的是打开 settings.json,确认这一行存在且值明确为 "off":
"files.autoSave": "off"
注意:工作区设置(即项目根目录下 .vscode/settings.json)会优先覆盖全局设置。如果关不掉,八成是这个文件里写了别的值。
为什么设了 "off" 还在偷偷保存?检查三处干扰源
常见现象:明明 files.autoSave 是 "off",但切标签、切窗口甚至关编辑器时,文件还是被存了——大概率不是 VSCode 自己干的,而是以下三者之一在“代劳”:
-
editor.codeActionsOnSave被某些扩展(如 ESLint、Prettier)启用,它们会在你手动按Ctrl+S时顺带触发格式化或修复,但不会导致“无操作自动存盘”;不过若你误以为这是自动保存,就容易混淆 -
files.hotExit设为"onExitAndWindowClose"时,关窗口前会把未保存内容暂存到本地缓存(storage.json),下次启动可能恢复为未保存状态——但这不是写入磁盘,只是内存快照,不等于自动保存 - 某些扩展(比如 Auto Save Plus)会绕过
files.autoSave自行实现保存逻辑,禁用所有扩展后测试一次就能快速定位
还原纯手动存盘习惯的两个关键确认点
设成 "off" 只是第一步。要确保每次修改都真得靠你按 Ctrl+S(Windows/Linux)或 Cmd+S(macOS)才落盘,还得盯住这两点:
- 当前文件必须有真实路径:左下角状态栏显示的是
./src/index.ts这类路径,而不是Untitled-1;新建文件务必先执行File > Save As,否则Ctrl+S会弹出保存对话框,根本不会触发任何保存行为 - 终端或调试器运行时不会替你保存:比如用
npm run dev启动热更新,它读的是磁盘文件,不会读编辑器内存里的未保存内容;没按Ctrl+S就跑命令,实际执行的仍是旧版本
容易被忽略的“假关闭”陷阱:restoreWindows 和 hotExit 不是自动保存,但影响感知
有人关掉自动保存后,发现重启 VSCode 还是看到上次改了一半的文件——这不是 files.autoSave 失效,而是 window.restoreWindows 在作祟。它控制启动时恢复哪些窗口,默认是 "all",会把未保存的标签页也原样拉回来,让你误以为“它又自己存了”。真正要干净启动,得额外设:
"window.restoreWindows": "none"
这个配置和自动保存无关,但它会让“手动存盘”的边界更清晰:你关掉窗口前没按 Ctrl+S,那内容就真的只活在内存里,重启后彻底消失——没有模糊地带。


















