VSCode 9 并不存在,最新稳定版为1.86;需开启editor.formatOnSave、配置默认格式化程序、安装对应插件,并按语言分层设置以确保格式化生效。

VSCode 9 并不存在——目前(2026年3月)最新稳定版是 VSCode 1.86,历史版本中也从未发布过 9.x。你很可能指的是旧版 VSCode(比如 1.9.x),或混淆了其他编辑器(如 Visual Studio 2019/2022)。下面按真实可用的 VSCode 版本说明怎么让代码格式化真正生效。
怎么确认格式化功能已启用且起作用
很多人点 Shift + Alt + F 没反应,或保存后没变化,不是功能坏了,而是关键开关没开或工具没配对。
-
editor.formatOnSave必须设为true,否则保存=不格式化 - 右键“格式化文档”弹出提示时,一定要点“配置默认格式化程序”,不能跳过——VSCode 不会自动猜你用 Prettier 还是 ESLint
- 如果项目里有
.prettierrc或.eslintrc.js,但插件没装(比如没装esbenp.prettier-vscode),设置再全也白搭
JavaScript/TypeScript 怎么让 Prettier 和 ESLint 不打架
常见现象:保存后代码被 Prettier 换行,ESLint 又标红“line too long”,或者自动修复把引号改回双引号,和 .prettierrc 冲突。
- 必须安装
eslint-config-prettier和eslint-plugin-prettier,并在.eslintrc.js的extends里写上'plugin:prettier/recommended' - VSCode 设置中,
editor.defaultFormatter要指定为 Prettier(不是 ESLint),因为 ESLint 的格式化能力有限,只负责规则校验+小修;Prettier 才干重活 -
"editor.codeActionsOnSave": { "source.fixAll.eslint": true }和"editor.formatOnSave": true可共存,但顺序上:先格式化(Prettier),再修复(ESLint),所以冲突规则必须由 ESLint 主动禁用(靠eslint-config-prettier)
Python/HTML/CSS 怎么避免格式化“越帮越忙”
比如 Python 用 black 格式化后缩进变 4 格,但团队要求 2 格;或 CSS 里 margin: 0 被硬拆成四行,破坏可读性。
- 语言专属设置优先级高于全局:在
settings.json中用"[python]"块覆盖editor.tabSize,例如"[python]": { "editor.tabSize": 2, "editor.defaultFormatter": "ms-python.black-formatter" } - CSS 类文件建议用
Prettier+overrides配置,比如在.prettierrc里加:{ "semi": false, "bracketSpacing": false, "overrides": [{ "files": "*.css", "options": { "printWidth": 120 } }] } - 别依赖全局
editor.insertSpaces控制空格缩进——某些语言(如 YAML)需要 tab,而 Python 强制 space,必须分语言设
为什么项目根目录放 .vscode/settings.json 比用户全局设置更可靠
现象:你在自己电脑上配好了,同事拉代码一打开,格式化还是乱的。
-
.vscode/settings.json是工作区级配置,会被 VSCode 自动识别并加载,只要文件存在就优先生效 - 它能精确控制
editor.formatOnSave、editor.defaultFormatter等关键项,且支持语言块语法(如"[typescript]") - 注意:这个文件默认不被 Git 忽略,但如果你写了敏感路径或本地调试配置,要手动加到
.gitignore;纯格式化相关项建议提交,确保团队一致










