Code Spell Checker装完不标红,90%因插件未启用、语言模式错误或cSpell.language未配对;需确认右下角显示Spell图标、文件语言为javascriptreact等有效ID,并配置cSpell.language为["en","zh-CN"]、启用allowCompoundWords及安装官方中文词典扩展。

装完插件不标红,基本不是插件坏了,而是它根本没跑起来——右下角没 Spell 图标、语言模式不对、cSpell.language 没配对,三者占九成原因。
右下角没 Spell 图标?插件压根没激活
插件安装 ≠ 启用 ≠ 生效。VSCode 不会弹窗提醒你配错了,只会安静地跳过所有检查。
- 打开任意
.js或.md文件,盯住右下角状态栏:必须出现Spell字样或语言码(如en),否则插件没加载到当前上下文 - 进扩展面板搜
Code Spell Checker,确认右下角显示的是「已启用」,不是「已安装」 - 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Spell Checker: Toggle回车,强制开关一次,有时能触发重载 - 检查
settings.json里有没有残留的"cSpell.enabled": false—— 这个全局禁用项一旦存在,其他配置全作废
JSX/TSX 字符串不标红?语言模式错了
拼写检查严重依赖 VSCode 的语言 ID 来提取字符串和注释。JSX 中的 {"succes"}、Vue 模板里的文本、TSX 的属性值,全靠正确语言模式触发。
- 右下角点语言标识,把
JavaScript改成JavaScript React;TypeScript改成TypeScript React -
.vue文件需手动设为Vue(不是HTML),否则内容无法解析出可检查文本 - 在
settings.json中确认有:"cSpell.enabledLanguageIds": ["javascriptreact", "typescriptreact", "vue"] - 临时验证法:在文件顶部加一行
// spell-checker: disable,保存后再删掉——如果这时突然开始标红,说明之前被某处静默禁用了
cSpell.language 怎么配才管用
只写 "en",中文注释和中英混排字符串永远被无视;写成 "zh-CN" 才能稳定识别“登录页”“用户名”这类复合词,但必须搭配 cSpell.allowCompoundWords: true。
- 必须是数组格式:
"cSpell.language": ["en", "zh-CN"],不能是字符串"en, zh-CN" - 必须装官方词典扩展:
cSpell Dict Chinese(作者streetsidesoftware),第三方“Chinese Spell Checker”不兼容 -
cSpell.allowCompoundWords设为true,否则useStore会被拆成use和store,两个都报错 - 别用
cSpell.userWords加单个词如"user"和"info"—— 这会让userinfo(无大写)也被放过,失去检查意义;应该加驼峰形式:"userInfo"、"httpStatus"
变量名/函数名为啥不标红?这是设计,不是 bug
默认不查 console、document、useState 这类标识符,因为它们属于代码逻辑部分,拼错可能是有意缩写(比如 usr 代替 user)。要让它查,得手动开严格模式。
- 启用
cSpell.diagnosticLevel并设为"Hint"或"Information" - 确保
cSpell.enabledLanguageIds包含你实际用的语言 ID(如"javascript"、"typescript") - 高频 API 必须白名单化:在
settings.json加"cSpell.userWords": ["console", "document", "fetch", "localStorage"],注意大小写敏感 - CI/CD 里别指望插件起作用——它依赖 GUI 和语言服务上下文,必须换 CLI:
npx cspell --no-progress "**/*.{js,ts,md}" --ignore="node_modules/**" --ignore="dist/**"
最常被忽略的其实是语言模式和词典扩展的绑定关系:没有 cSpell Dict Chinese,zh-CN 就是空转;没把 .tsx 文件语言设成 TypeScript React,模板字符串里的错词就永远看不见。











