vscode 默认无纠错能力,需语言扩展+规则引擎(如eslint、pyright)协同;常见不报错原因:语言模式错误、缺少配置文件、eslint未扫描项目;推荐直接配置settings.json启用三开关:字符串补全、js函数名修正、python基础类型检查。

VSCode 默认不带任何代码纠错能力,所谓“基础纠错”必须靠语言扩展 + 规则引擎(如 ESLint、Pylance、Pyright)协同工作,缺一不可。
为什么装了插件还是没报错?
常见现象:安装了 ESLint 或 Python 扩展,但写 console.logg() 或 prin("hello") 却没红线提示。
- 语言扩展未启用对应语言模式——右下角状态栏显示的是
Plain Text而非JavaScript或Python,点击它手动切对 - 项目根目录缺少规则配置文件:
.eslintrc.js(JS/TS)、pyrightconfig.json(Python)或settings.json中未启用检查模式 - ESLint 插件默认只检查打开的文件,若未在项目中运行过
npx eslint --init,它可能连node_modules都没扫描到
新手最该配的三个纠错开关
不写复杂配置,直接改 .vscode/settings.json(项目级,推荐):
-
"editor.quickSuggestions": {"strings": true}—— 启用字符串内自动补全(比如 JSON 键名、路径拼写) -
"javascript.suggestionActions.enabled": true—— JS 中打错函数名时,自动给出console.log这类修正建议(不是仅高亮) -
"python.analysis.typeCheckingMode": "basic"—— Python 项目开启基础类型检查,def f(x: int) -> str: return x这种明显类型错会立刻标红
这三个选项不依赖外部工具链,开即生效,且不会因格式化或缩进设置冲突而失效。
ESLint 报错但不显示?检查这三处
ESLint 是最常被新手配错的纠错工具,问题往往不在规则本身,而在加载路径和作用域:
- 确认
.eslintrc.js在项目根目录(不是子文件夹),且导出对象含rules或extends字段 - VSCode 的 ESLint 插件默认只读取
eslint.config.mjs或.eslintrc.*,不识别eslintConfig字段写在package.json里(除非你显式开启eslint.packageManager) - 若用 Prettier,确保
eslint-config-prettier已加入extends数组末尾,否则格式化规则会压制纠错提示
别让“自动修复”把代码修坏
editor.codeActionsOnSave 是双刃剑,尤其对新手:
- 默认开启
"source.fixAll.eslint": true时,保存可能自动删掉你刚写的debugger或注释掉未使用的变量——这不是纠错,是干扰 - 建议先关掉所有自动修复:
"editor.codeActionsOnSave": {},等熟悉规则后再按需开启,例如只开"source.organizeImports" - Python 的
autopep8或black若设为默认 formatter,它们的“修复”行为(如重排 import)不属于纠错范畴,容易掩盖真实类型错误
真正稳定的纠错,靠的是语言服务器实时诊断,而不是保存时扫一遍再改。别让格式化器抢了纠错工具的活儿。











