Code Spell Checker 装完不标红,90% 是插件未激活或未加载到当前文件上下文:右下角必须显示 Spell 图标或 en/zh-CN 等语言标识;需确认插件“已启用”而非仅“已安装”,并确保文件语言模式为 TypeScript React 或 JavaScript React,同时检查 settings.json 中无 "cSpell.enabled": false 全局禁用项。

Code Spell Checker 装完不标红,不是插件坏了,而是它根本没加载到当前文件上下文——90% 的问题出在右下角没出现 Spell 图标或语言标识(如 en),其余配置全白搭。
右下角没 Spell 图标?先确认插件真启用了
插件“已安装”不等于“已启用”,更不等于“正在工作”。VSCode 不会弹窗告诉你配错了,只会安静跳过。
- 打开任意
.ts或.md文件,盯住右下角状态栏:必须看到Spell图标或类似en/zh-CN的语言代码 - 进扩展面板搜
Code Spell Checker,右下角显示的是「已启用」,不是「已安装」 - 按
Cmd+Shift+P(Mac)或Ctrl+Shift+P(Win/Linux),输入Spell Checker: Toggle回车,强制重载一次 - 检查
settings.json里有没有误加"cSpell.enabled": false——这个配置一存在,其他所有设置都失效
字符串/注释不标红?语言模式和语法高亮没对上
Code Spell Checker 不自己解析代码,它依赖 VSCode 的语法高亮(TextMate grammar)来识别哪些文本是字符串、哪些是注释。语法解析失败,就找不到检查目标。
- 点击右下角语言标识(如
Plain Text),用Change Language Mode改成TypeScript React(不是TypeScript)或JavaScript React;JSX 中的{"hello"}和模板字符串只在这些模式下被识别 -
.vue文件必须装Volar(不是Vetur),否则<template>里的内容压根不会被提取出来 - 检查
files.associations设置,别把*.ts错误映射成plaintext——这种配置会让插件直接跳过整个文件 - 临时验证法:在文件顶部加一行
// spell-checker: disable,保存后再删掉。如果这时突然开始标红,说明之前被某处静默禁用了
中文注释总被整段标红?三个配置缺一不可
中文不是“拼写错误”,是插件把它当英文单词去查词典了。想让它合理分词,得同时满足:
-
cSpell.language必须设为数组:["en", "zh-CN"](zh或zh-cn都不行) -
cSpell.allowCompoundWords必须为true,否则userName会被拆成user和name,两个都报错 - 必须安装官方
cspell-dict-chinese扩展(作者streetsidesoftware),第三方“Chinese Spell Checker”不兼容
如果仍整段标红,打开开发者工具(Developer: Toggle Developer Tools),在 Console 里搜 cSpell,看有没有词典加载失败日志。
项目级词典怎么生效?cspell.json 比 settings.json 更可靠
把词典放在用户级 settings.json 里,团队成员没法共享,CI/CD 也读不到。真正起作用的是项目根目录的 .cspell.json。
- 新建
.cspell.json,至少包含version、language和words字段,例如:{"version":"0.2","language":"en-US","words":["VitePress","tRPC","Zod"]} -
language必须显式匹配你项目实际用的语言变体(如en-US),只写en可能导致术语匹配失败 -
words里只加团队高频专有名词,别塞fetch、localStorage这类内置词——它们已在英语词典中,加了反而干扰分词 -
ignorePaths写在这里比写在用户设置里更安全,比如["node_modules/**", "**/dist/**"],避免误关全局检查
改完后,打开一个 .ts 文件,右下角应立刻显示 en-US 或 zh-CN——没显示,说明配置根本没加载。


















