VSCode默认不自动格式化代码,必须手动启用"editor.formatOnSave": true并按语言指定defaultFormatter(如"[python]": {"editor.defaultFormatter": "ms-python.black-formatter"}),否则即使安装Prettier/Black/ESLint也无效;全局设置defaultFormatter会导致非兼容语言报错。
VSCode 默认不自动格式化代码,哪怕你装了 Prettier、Black 或 ESLint —— 关键开关默认是,必须手动设为,否则 Ctrl+S 就只是保存。
为什么保存后没反应?先确认
开了没
这是 90%“配了没用”问题的根源。VSCode 不会默认开启这个行为,哪怕你已安装全部扩展。
打开设置(
或
),搜索
,勾选
Editor: Format On Save
或直接编辑
,确保有这一行:
注意:项目根目录下的
会覆盖全局设置;如果里面写了
,那整个项目都无效
为什么提示 “No formatter installed for 'python'”?
必须按语言指定
VSCode 不会自动把 Prettier 当成 JavaScript 的格式化器,也不会让 Black 处理 Python——它根本不知道该用谁,必须显式声明。
右下角状态栏看当前语言模式(如
、
),确保不是
按
输入
,看列表是否为空;为空说明扩展没装、没启用,或不支持当前语言
在
中按语言配置,例如:
切忌写成全局形式:
—— 这会让 Python 文件报错,Go 文件直接跳过
格式化器装了但右下角显示 “None”?检查扩展激活状态和语言匹配
右下角显示的语言模式(如
)和当前激活的格式化器(如
)必须一致,否则保存只是“空转”。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
文件右下角要是
,不能是
;
文件不能是
却配了 JS 的 formatter
Python 用户注意:
扩展本身不等于格式化器,还需安装
,或在设置中明确指定
JS/TS 项目若用 ESLint 做修复,需额外开启:
,且项目里得有
和对应配置
保存后格式没变?可能是
或超时导致静默失败
VSCode 1.84+ 引入了
,默认值是
,但某些格式化器(尤其是 Prettier)遇到语法错误(如
)会直接放弃格式化,看起来像“没生效”。
对边写边调的场景,可尝试设为
:
格式化慢导致被中断?VSCode 默认超时是 750ms,可在项目
中加:
多人协作时,真正决定“怎么格式”的不是 VSCode 设置,而是项目里的
、
或
;本地设置只负责“调用”,别在 UI 里调缩进空格数来替代这些文件
最易忽略的一点:格式化器是否真的读到了你的配置文件。比如
设为
但项目里没
,就会静默跳过——这种失败不会弹报错,只留空白结果。
editor.formatOnSavefalsetrueeditor.formatOnSaveCtrl + ,Cmd + ,format on savesettings.json"editor.formatOnSave": true.vscode/settings.json"editor.formatOnSave": falsedefaultFormatterPythonTypeScriptPlain TextCtrl+Shift+PFormat Document Withsettings.json{"[python]": {"editor.defaultFormatter": "ms-python.black-formatter"}, "[typescript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"}}"editor.defaultFormatter": "esbenp.prettier-vscode"JavaScriptPrettier.pyPythonPlain Text.tsTypeScriptms-python.pythonms-python.black-formatterpython.formatting.provider"editor.codeActionsOnSave": {"source.fixAll.eslint": true}eslintformatOnSaveModeeditor.formatOnSaveModefileUnterminated string literalmodifications"editor.formatOnSaveMode": "modifications".vscode/settings.json"editor.formatOnSaveTimeout": 2000.prettierrcpyproject.toml.eslintrc.jsprettier.requireConfigtrue.prettierrc