vscode自动保存必须设files.autosave为off/afterdelay/onfocuschange/onwindowchange之一,设true、1等非法值会失效;afterdelay需同步配置files.autosavedelay(毫秒),否则可能高频刷盘;工作区设置、语言专属配置或editor.formatonsave失败均会导致不生效。

直接改 settings.json 里的 files.autoSave
VSCode 的自动保存不是开关,而是字符串枚举值,必须设为 off、afterDelay、onFocusChange 或 onWindowChange 四者之一;设成 true、false、1 或空字符串会完全失效。
打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),输入并选择 Preferences: Open Settings (JSON),在用户级 settings.json 中添加或修改:
{
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000
}
注意:afterDelay 模式下,files.autoSaveDelay 必须显式配置,单位毫秒;不写或写错(如 "files.autoSaveDelay": "1000" 字符串)会导致延迟为 0,高频刷盘甚至卡顿。
工作区设置会覆盖用户级 settings.json
如果项目根目录存在 .vscode/settings.json,它优先级更高,会直接屏蔽你用户级的 files.autoSave 配置。
- 右下角状态栏显示「工作区」时,说明当前生效的是工作区设置
- 运行 Preferences: Open Workspace Settings (JSON) 查看是否写了
"files.autoSave": "off" - 多根工作区建议把排除规则(如
"**/dist/**")也写进工作区设置,避免污染全局
语言专属配置可能单独关掉某类文件
你设了全局 "files.autoSave": "afterDelay",但 .md 文件还是不自动保存?很可能是语言专属配置在后台悄悄关掉了它。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
打开命令面板,输入并选择 Preferences: Configure Language Specific Settings,再选 markdown,检查是否生成了类似这样的块:
"[markdown]": {
"files.autoSave": "off"
}
这类配置对指定语言文件有最高优先级,连工作区设置都管不了它。临时调试时可删掉整段,确认是否是它导致失效。
editor.formatOnSave 失败会导致“看起来没保存”
启用格式化插件(如 Prettier)并设置了 "editor.formatOnSave": true 后,VS Code 会在自动保存前先尝试格式化。一旦失败——比如缺 .prettierrc、插件未激活、或代码语法错误——它可能静默放弃本次保存,文件右上角仍带 ●,但磁盘没写入。
排查方法:
- 临时注释掉
"editor.formatOnSave": true,观察是否恢复自动保存 - 打开开发者工具(
Ctrl+Shift+I),看 Console 是否报No formatter registered for 'typescript'类错误 - 确保对应语言的
editor.defaultFormatter已正确定义,例如"[javascript]": "esbenp.prettier-vscode"
真正容易被忽略的是:自动保存只对已修改的文件生效;新建未编辑过的空文件、刚拉取且未改动的文件,不会触发任何自动保存逻辑。










