直接关cspell.enabled能解决90%中文注释红波浪线;其他波浪线须先悬停看前缀——typescript:、eslint:、cspell:等前缀明确标识来源,右下角abc图标佐证cspell运行,误关problems.decorations.enabled会隐藏所有真实错误。

直接关 cSpell.enabled 就能解决 90% 的中文注释红波浪线;其他波浪线必须先悬停看前缀,否则容易误关真实错误提示。
怎么一眼认出波浪线是谁画的
悬停在任意波浪线上,看弹出提示的前缀——这是唯一可靠判断依据:
-
typescript:或javascript:→ 来自内置 JS/TS 验证器,控制项是javascript.validate.enable或typescript.validate.enable -
eslint:→ ESLint 插件所为,关它得设eslint.enable为false,或禁用 ESLint 扩展 -
cSpell:或提示 “Unknown word” → Code Spell Checker 在标中文/英文拼错,不是语法问题 -
Vetur:或invalid expression→ Vue 模板校验误报,可关vetur.validation.template -
C_Cpp:或cannot open source file→ C/C++ 扩展路径失效,需设C_Cpp.errorSquiggles为"disabled"
右下角状态栏有 ABC 图标,基本可确认是 cSpell 在运行;没图标却仍有红线,再查 Spell Right、LanguageTool 等插件是否悄悄启用了拼写逻辑。
只关波浪线,不关后台检查
你不需要“看不见就等于没发生”,只需要编辑器不画线。这样 Ctrl + Shift + M 打开 Problems 面板仍能看到全部问题,悬停也能看到提示:
- 全局隐藏所有波浪线(红/黄/蓝):
"problems.decorations.enabled": false—— 但会一并隐藏 TypeScript 类型错误、ESLint 未定义变量等真实问题,慎用 - 仅隐藏黄色警告线(如 ESLint 的
no-console):"workbench.colorCustomizations": { "editorWarning.foreground": "#00000000" }—— 注意部分主题或高 DPI 屏幕可能有渲染残留 - 对 C/C++ 单独处理:
"C_Cpp.errorSquiggles": "disabled"—— 值必须是字符串"disabled",不是布尔false - 临时 suppress 单文件:
Ctrl + .(Win/Linux)或Cmd + .(macOS),光标放报错行选Suppress diagnostic,或放空白处选Suppress all diagnostics in this file
cSpell 红线反复出现?检查三层配置覆盖
改了 "cSpell.enabled": false 还有红线,大概率是配置被覆盖:
- 项目根目录下的
.vscode/settings.json可能写了"cSpell.enabled": true - 语言专属设置如
"[typescript]": { "cSpell.enabled": true }会优先生效 - 某些插件(如 Markdown Preview Enhanced)自带拼写模块,
editor.spellcheck设置才管它
改完务必按 Ctrl + Shift + P → 输入 Developer: Reload Window 重载,避免语言服务缓存旧配置。悬停原红线位置确认提示消失,且 console.lgo 这类真实错误仍能标黄——这才是关对了。
最危险的操作是关 problems.decorations.enabled:它一动,所有语言服务器和 lint 工具的波浪线全灭,包括真正该拦住你的类型错误。而 cSpell.enabled 是精准靶向,只打拼写干扰,不动诊断根基。











