Spell Right 不支持中文拼写检查,因其依赖系统API且无中文词典与分词能力;cSpell是VS Code下唯一靠谱的中英文混合校验方案,需手动配置中文词典与分词规则。

Spell Right 不支持中文拼写检查
Spell Right 本质是调用系统级拼写服务(如 macOS 的 NSSpellChecker、Windows 的 ISpellChecker),而这些底层 API 均不提供中文词典或分词能力。它对中文的“校验”只是把整段汉字当做一个超长单词去查——必然标红,毫无意义。
常见错误现象:Spell Right 在中英文混排文本中,把所有中文字符全标为拼写错误;配置 language 加上 zh-CN 无效;启用 ignoreMixedContent 后英文也不检查了。
- 真正能处理中英文混合的方案,必须依赖独立词典 + 分词逻辑,比如
cSpell - Spell Right 的
language列表里写zh-CN或zh属于无效配置,会被静默忽略 - 它对「中英夹杂」的容忍仅限于「英文单词前后有中文」,但一旦中文字符插入到英文单词中间(如
test中word),整个 token 就失效,无法拆解校验
cSpell 是当前 VSCode 下唯一靠谱的中英文混合拼写方案
cSpell 是纯 JavaScript 实现的拼写检查器,自带英文词典,通过插件机制支持中文:需手动添加中文词典(如 cspell-dict-chinese)并配置分词规则。它不依赖系统,因此可控性高、行为可预测。
使用场景:技术文档、README、注释、字符串字面量中同时出现英文术语和中文说明。
- 安装插件:
cSpell(Street Side Software 出品,VS Code 官方市场搜这个名字) - 安装中文词典:
npm install -D cspell-dict-chinese,然后在cSpell.languageSettings中引用zh-CN - 关键配置项:
cSpell.allowCompoundWords设为true,否则localStorage这类组合词会被误报 - 中文校验靠的是「用户自定义词典 + 预分词」,不是实时语义理解,所以需要定期维护
words.txt补充项目专有名词
中英文混排时,cSpell 的分词边界容易出错
cSpell 默认按空格、标点、大小写变化切分单词,但中文没有空格分隔,所以它依赖 locale 和 language 配置来决定是否启用中文分词模块。一旦配置不匹配,就会把「接口返回值」当成一个词,或把「APIResponse」错误切分为 API + Response 而漏掉中间的中文部分。
- 必须在工作区根目录放
.cspell.json,而非仅靠 VS Code 设置界面配置 -
language字段要明确列出["en-US", "zh-CN"],不能只写zh-CN(否则英文词典不加载) - 中文词典生效前提是
cSpell.spellCheckDelayMs> 0 且cSpell.enabled为true,某些旧版插件会因延迟设为 0 导致中文校验完全不触发 - 正则过滤项
ignoreRegExpList推荐加上/[\u4e00-\u9fa5]+/的反向排除(即「不忽略中文」),避免被其他规则误吞
性能与误报率需手动平衡
cSpell 开启中英文双词典后,首次校验延迟明显(尤其大文件),且默认对驼峰、下划线命名的识别不够智能,容易把 userLoginStatus 拆成 user Login Status,但把 用户登录状态 当作单个未知词标红。
- 降低延迟:关掉
cSpell.checkLimit的限制(默认 1000 行),或用cSpell.filetypes限定只检查markdown、typescript等必要类型 - 减少误报:在
.cspell.json中开启allowLeadingUnderscore和allowTrailingUnderscore,适配 TypeScript 的私有字段命名习惯 - 真正的混合校验难点不在工具链,而在「哪些中文该进词典」——比如「JWT」是英文缩写,但「鉴权令牌」是中文术语,两者都要加进
words.txt,否则永远红着
中文拼写校验从来不是开箱即用的事。词典要装、分词要调、专有名词要攒,最麻烦的永远是第一次把项目里的业务词扫一遍补全。



















