settings.json语法错误会导致格式化静默失效,需清空内容为{}并彻底退出VSCode重启;若仍无效,应重命名User目录、关闭Settings Sync后重建配置。

settings.json 写错会导致格式化完全静默失效——不是报错,而是 VSCode 直接跳过整个文件,editor.formatOnSave、editor.defaultFormatter 全部不生效。重置的关键不是删文件,而是清空内容并强制回落默认行为。
先清空 settings.json 看是否恢复
多数格式化失效(保存不格式、右键 Format Document 置灰、no formatter installed)都源于该文件语法错误,VSCode 不提示,只静默忽略。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并选择Preferences: Open Settings (JSON) - 把全部内容删掉,只保留
{}—— 注意不是留空行,也不是删除文件本身 - 按
Ctrl+S保存,**彻底退出 VSCode**(macOS 检查「活动监视器」中无Code Helper进程;Windows 查任务管理器) - 重启后测试:新建一个
.js文件,输入const a=1,保存,看是否自动格式化为const a = 1;
Format Document With… 列表为空?检查语言 ID 绑定
清空 settings.json 后手动格式化仍失败(右键菜单里没 Prettier、ESLint 或 Volar),说明插件没注册到对应语言,常见于插件更新后语言 ID 变更。
- 按
Ctrl+Shift+P→ 输入Format Document With…,看列表是否为空或只有Configure Default Formatter - 右下角状态栏确认语言模式正确(如显示
JavaScript,不是Plain Text或JSONC) - 若用 Vue 项目,新版
Volar已弃用vue语言 ID,改用vue-html或vue-postcss,需在settings.json中显式绑定:"[vue-html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } - HTML、MDX、YAML 等非标准语言也必须单独配块,不能只靠全局
editor.defaultFormatter
重命名 User 目录才能根除顽疾
如果清空 settings.json 无效,且出现快捷键失灵、侧边栏消失、终端位置错乱等混合异常,问题已超出 JSON 配置层,keybindings.json、storage.json(UI 状态缓存)或插件本地存储可能损坏。
- 确保 VSCode 完全退出(进程清零)
- 找到对应路径:
Windows:%APPDATA%\Code\User\
macOS:~/Library/Application Support/Code/User/
Linux:~/.config/Code/User/ - 把整个
User文件夹重命名为User_backup(别删,先备份) - 重启 VSCode,它会自动生成全新
User目录和空的settings.json、keybindings.json
务必关掉 Settings Sync 再操作
只要同步开着,重命名 User 目录后一启动,VSCode 就会从 GitHub/GitLab 自动拉回旧配置——包括你忘了的冲突项、别人共享的绑定、三年前项目的 files.associations,等于白干。
- 重启前执行
Ctrl+Shift+P→ 输入Preferences: Turn Off Settings Sync - 勾选
Turn Off and Reset Local State - 重启后验证:右下角齿轮旁不能有云朵图标,
settings.json内容应为{}
真正卡住格式化的,往往不是插件本身,而是某个语言块里拼错了 editor.defaultFormatter 的值,或者 settings.json 里多了一个逗号却没意识到——它不会报错,只会让整套格式化逻辑彻底失联。











