Spell Right 不支持中文拼写检查,因其依赖系统API且无中文词典与分词能力;cSpell是VS Code下唯一靠谱的中英文混合校验方案,需安装cspell-dict-chinese并配置language为["en-US","zh-CN"]及allowCompoundWords为true。

Spell Right 在 VSCode 中无法真正支持中文拼写检查,这不是配置问题,而是底层设计限制。
它依赖操作系统自带的拼写服务(如 macOS 的 NSSpellChecker、Windows 的 ISpellChecker),而这些系统级 API 均不提供中文词典或分词能力。你看到的“中文标红”,本质是把整段汉字当做一个超长英文单词去查——必然失败,毫无校验意义。
Spell Right 的 language 配置 zh-CN 为什么无效?
Spell Right 的 language 列表里写 zh-CN 或 zh 属于无效配置,会被静默忽略。插件不会报错,也不会加载任何中文词典。常见现象包括:
- 中英文混排时,所有中文字符全被标红
- 启用
ignoreMixedContent后,连英文也不检查了 - 右下角语言标识始终不显示
zh-CN,说明根本没识别到该语言
cSpell 是当前唯一靠谱的中英文混合校验方案
cSpell(Code Spell Checker)是纯 JavaScript 实现,不依赖系统,自带英文词典,并可通过插件机制接入中文支持:
- 必须安装官方
cspell-dict-chinese扩展(作者streetsidesoftware) -
cSpell.language必须显式设为数组:["en-US", "zh-CN"],不能是字符串"en,zh-CN" -
cSpell.allowCompoundWords设为true,否则localStorage这类驼峰名会被错误切分 - 中文校验靠的是预分词 + 用户词典,不是语义理解,所以需手动维护
words字段补充项目术语
为什么加了 words 还是标红?关键在 language 字段是否显式启用
cSpell 不会自动把 cspell.json 里的 words 应用到所有语言——它只对 language 字段里**明确声明**的语言生效。典型错误有:
- 只写
"language": "en",没指定地区变体(en-US或en-GB),导致color/colour匹配失败 -
cSpell.language写成字符串"en, zh-CN",而非数组["en-US", "zh-CN"] - 中文词典生效前提:插件已加载
zh-CN对应词典,且cSpell.spellCheckDelayMs > 0(设为 0 会跳过中文校验)
cSpell 是目前唯一可控、可调试、可工程化落地的路径。配置稍繁,但每一步都有明确反馈点——比如右下角出现 en-US 或 zh-CN 标识,才是语言真正加载成功的信号。


















