应通过项目根目录的.vscode/settings.json配置files.autoSave和files.autoSaveDelay等字段实现工作区级自动保存,右下角显示「工作区」即生效;需注意语言专属配置、files.autoSaveExclude排除构建目录及新建/未修改文件不触发等限制。

怎么让自动保存只对当前项目生效
自动保存默认是全局行为,但项目间需求常不一致:前端项目想延时保存防编译风暴,Python 脚本又希望切终端就落盘。必须用工作区设置(.vscode/settings.json),否则改的全是用户级配置,其他项目全被波及。
- 关闭 VSCode 所有文件夹,确保处于空窗口状态(避免误操作到临时多文件夹)
- 在项目根目录手动创建
.vscode文件夹(若不存在) - 新建
settings.json,写入:{ "files.autoSave": "afterDelay", "files.autoSaveDelay": 1200 } - 保存后右下角状态栏应显示「工作区」而非「用户」——这是生效的关键视觉提示
为什么工作区设置有时不生效
常见不是配错了,而是被更高优先级规则悄悄覆盖。尤其注意三点:
-
.vscode/settings.json里写了"files.autoSave": "off",哪怕只有一行,也会彻底禁用 - 语言专属配置能穿透工作区:比如你在该文件里加了
"[markdown]": { "files.autoSave": "off" },那所有.md文件都不走自动保存 - 远程开发(SSH/WSL)或 Dev Container 场景下,图形界面设置默认写入本地用户配置,必须手动编辑远程端的
.vscode/settings.json
如何排除构建产物不被自动保存触发
自动保存不管文件用途,dist/、build/、__pycache__/ 这类目录被频繁写入,会反复拉起 Webpack/Vite 或导致 Git 提交脏数据。得靠 files.autoSaveExclude 显式拦截:
- 在项目级
.vscode/settings.json中添加:"files.autoSaveExclude": [ "**/dist/**", "**/build/**", "**/__pycache__/**", "**/*.pyc" ]
- 路径必须用
/(Windows 下也一样),不支持\ - glob 模式生效,
**匹配任意层级,*只匹配当前层 - 多根工作区建议把这条也写进工作区
.code-workspace的settings字段里,避免漏掉子项目
onFocusChange 和 afterDelay 在项目中怎么选
选错模式会让编码节奏变卡顿,不是功能没开,是时机不对:
-
onFocusChange:适合编辑配置文件、JSON Schema、YAML 部署脚本等“改完即走”场景;但切终端查日志、点侧边栏、甚至点一下资源管理器都会触发保存,容易误存中间态 -
afterDelay(推荐 1000~1500ms):更适合连续编码;停顿 1 秒后才写盘,既防丢又不打断思路;设太小(如 300ms)在 WSL 或老旧硬盘上能感知磁盘抖动 - 真正容易被忽略的是:新建空文件、刚
git pull下来未修改的文件,右上角没圆点(●),自动保存根本不会触发——它只管“已修改”状态


















