关掉 VSCode 保存时自动格式化需修改 editor.formatOnSave,优先级为语言专属设置 > 工作区设置 > 用户设置;若仍生效,检查项目 .vscode/settings.json 是否覆盖,或配置语言专属规则如 "[javascript]": { "editor.formatOnSave": false }。

怎么关掉 VSCode 保存时自动格式化
直接关掉 editor.formatOnSave 就行,但得注意它在哪生效——用户设置、工作区设置、语言专属设置三者有优先级,改错地方就白改。
- 最常用方式:按
Ctrl + ,(Windows/Linux)或Cmd + ,(Mac)打开设置,搜format on save,把「编辑器:保存时格式化」的勾去掉 - 更稳妥的方式:用命令面板
Ctrl + Shift + P→ 输入Preferences: Open User Settings (JSON)→ 在settings.json里加一行:"editor.formatOnSave": false - 如果关不掉,大概率是项目根目录下有
.vscode/settings.json,里面写了"editor.formatOnSave": true——这个会覆盖你用户的设置,必须去项目里删或改掉
只想禁用某一种语言的自动格式化
比如你写 Python 用 black,但 JS 项目里不想让 Prettier 插手,那就别全局关,只针对语言设 false,这样其他语言还能照常格式化。
- 在
settings.json里加语言专属配置,例如:"[javascript]": { "editor.formatOnSave": false } - 支持所有标准 languageId,比如
[typescript]、[html]、[json],大小写敏感,不能写成js或JavaScript - 注意:如果该语言没指定
editor.defaultFormatter,即使开了formatOnSave也不会动——但关的时候不用管这个,false就彻底跳过
为什么关了还是格式化?常见覆盖点
VSCode 的格式化开关像叠罗汉:用户设置
-
.vscode/settings.json存在且含"editor.formatOnSave": true→ 优先级最高,必须先查这个文件 - 某些插件(如 ESLint + Prettier 组合)会通过
eslint.format.enable开启“保存时用 ESLint 格式化”,这和editor.formatOnSave是两条路,得额外关:"eslint.format.enable": false - 极少数项目用了
editor.codeActionsOnSave触发格式化(比如"source.formatDocument"),这个比formatOnSave更底层,也得手动清空
保留手动格式化能力,只禁自动保存触发
关掉自动格式化 ≠ 失去格式化功能。你依然能随时按 Shift + Alt + F(Windows/Linux)或 Shift + Option + F(Mac)手动格式化,快捷键不受影响。
- 想进一步“轻量禁用”:可以留着
editor.formatOnSave为true,但把默认格式器设为空:"editor.defaultFormatter": null——这样保存时不报错也不干活 - 如果只是临时不想格式化,右下角状态栏点语言模式(如「JavaScript」),选「Configure Language Specific Settings…」,在里面关掉当前文件类型的
formatOnSave,不碰任何 JSON 文件 - 注意:有些团队共享的
.editorconfig或.prettierrc不影响是否触发,只影响“怎么格式化”,所以关格式化动作本身,永远从 VSCode 设置入手
.vscode/settings.json 几乎是必做动作。









