不用装 eslint 全家桶,启用 editor.quicksuggestions、editor.suggestontriggercharacters 和语义高亮,配合本地语言服务器(如 tsserver 或 pylance),即可在不卡顿前提下获得接近 ide 的实时纠错反馈。

直接上结论:不用装 ESLint 全家桶,开 editor.quickSuggestions + editor.suggestOnTriggerCharacters + 本地语言服务器(如 TypeScript 的 tsserver 或 Python 的 Pylance),再配一条 editor.semanticHighlighting 开启语义高亮,就能在不卡顿的前提下获得接近 IDE 的实时纠错反馈。
为什么禁用 ESLint 实时校验反而更“敏捷”
ESLint 在保存时全文件扫描是准的,但开启 eslint.enable + eslint.run: "onType" 后,每敲一个字符都触发解析——尤其对 node_modules 未忽略、规则含 no-unused-vars 或 complexity 的项目,CPU 占用飙升,光标延迟明显。敏捷开发要的是“写完就看到错在哪”,不是“写一半卡住等 lint”。
- 真正影响交付节奏的不是警告数量,而是反馈延迟:>300ms 延迟就会打断思维流
- TypeScript 和 Pylance 自带的语义级诊断(
ts.Diagnostic/Pylance diagnostic)响应快、定位准,且只检查当前作用域 - 把 ESLint 留给 pre-commit hook 或 CI 阶段做兜底,编辑器只管“别让我写错”,不负责“教我怎么写好”
editor.quickSuggestions 和 editor.suggestOnTriggerCharacters 怎么配才不误触
这两个开关控制的是“输入时是否弹建议框”,但默认行为在 JS/TS 里容易和括号补全打架。关键不是开或关,而是按语言微调:
- 对 TypeScript:设
"editor.quickSuggestions": { "other": true, "comments": false, "strings": false }—— 注释和字符串里关掉,避免在写console.log("user.id")时弹出变量建议干扰 - 对 Python:设
"editor.suggestOnTriggerCharacters": ["."],删掉默认的"["和"("—— 否则每次输arr[就弹索引建议,纯噪音 - 对 JSON/YAML:干脆关掉
quickSuggestions,这类文件靠 schema 校验更可靠
语义高亮(editor.semanticHighlighting)是纠错感知的隐形加速器
它不报错,但能让你“一眼看出哪不对”:比如 const foo = bar() 中 bar 是灰色(未定义),foo 是蓝色(const 声明),() 是绿色(函数调用)。这种颜色差异比红波浪线更快被视觉捕获。
- 必须配合语言服务器启用:TS 需
"typescript.preferences.includePackageJsonAutoImports": "auto";Python 需"python.defaultInterpreterPath"指向带pylance的环境 - 别和
editor.tokenColorCustomizations冲突:后者改的是词法层(比如所有string都变黄),前者改的是语义层(比如只有未 resolve 的import变灰) - 性能影响极低:VS Code 2025 年后已将 semantic highlighting 改为增量更新,开与不开内存占用差不到 2MB
真正容易被忽略的是语言模式识别——右下角显示 “Plain Text” 时,tsserver 和 Pylance 全部失效,所有配置形同虚设。每次新开文件,先看右下角,再敲代码。











