Prettier 与 ESLint 易冲突导致保存乱跳,需设默认 formatter 为 Prettier 并配置 ESLint 仅“收尾”修复;Auto Rename Tag 依赖正确语言模式(如 Vue/JSX);Error Lens 应排除 node_modules 等目录防卡顿。

Prettier 能立刻改善代码视觉混乱,但不配好就容易和 ESLint 冲突——这是你装完插件反而更卡、保存后代码乱跳的最常见原因。
为什么 Prettier 不能单独开“格式化 onSave”
它和 ESLint 都会改代码,比如一个写分号、一个删分号,保存时互相覆盖。VS Code 默认只认一个默认 formatter,如果没显式指定,可能随机生效其中一个。
- 必须在设置里明确设
"editor.defaultFormatter"为"esbenp.prettier-vscode" - 同时关掉
ESLint的自动修复("eslint.autoFixOnSave"已废弃,改用"editor.codeActionsOnSave"控制) - 加一条:
"editor.codeActionsOnSave": { "source.fixAll.eslint": true },让 ESLint 只在保存时“收尾”,不抢 Prettier 的格式化权 - 若项目用
eslint-config-prettier,确保已安装并启用,否则规则冲突会直接报错
Auto Rename Tag 在 Vue/JSX 里失效?检查语言模式
它只对 html、xml、vue 和部分 javascriptreact 模式生效。你在 .tsx 或未识别的模板字符串里重命名标签,它根本不会响应。
- 打开文件后看右下角状态栏,确认语言模式是
Vue或JavaScript React,不是Plain Text或TSX - 如果是
.vue文件但显示为HTML,手动点击切换成Vue - 对 JSX 中的自定义组件(如
<MyButton>),该插件不处理——它只管原生 HTML 标签和标准闭合结构
Error Lens 显示错位或延迟?别让它扫描整个工作区
它把错误提示直接贴在代码行末,很直观,但一旦项目含大量 node_modules 或构建产物,就会卡顿甚至崩溃。
- 禁用全局扫描:
"errorLens.excludeGlobs"加上["**/node_modules/**", "**/dist/**", "**/build/**"] - 不要开启
"errorLens.showAllDiagnostics",只留"errorLens.showErrors"和"errorLens.showWarnings" - 如果用 TypeScript,确保
tsserver进程稳定;它依赖 TS 语言服务输出,TS 报错卡住,Error Lens 就停摆
Prettier 和 ESLint 共享 formatter 权限,Error Lens 误扫 node_modules,或者 Auto Rename Tag 在错误语言模式下静默失效。这些点不手动干预,插件越多,编辑器越像在负重跑。



















