“useState”“API”“JSON”被标红是因为Code Spell Checker默认词典不含技术专有名词,需在项目根目录.cspell.json的"words"字段中添加这些词以白名单形式认可,避免误报。

为什么“useState”“API”“JSON”全被标红?
这不是插件坏了,是它把合法的技术词当成了拼写错误。Code Spell Checker 默认词典只含通用英文,React、TypeScript、Web API 这些专有名词不在其中,所以 useState、fetchAPI、JSON.stringify 里的大写部分或缩写会被拆解识别,触发 Unknown word 提示。
解决思路不是关插件,而是告诉它:“这些词我认可,别报”。优先级顺序是:项目级配置 > 用户级配置 > 全局默认词典。
- 在项目根目录建
.cspell.json,加"words"字段,填入你项目里高频出现的合法词:{"words": ["useState", "useEffect", "API", "JSON", "jsx", "tsconfig"]} - 避免污染全局:别用
cSpell.userWords往用户设置里硬塞,否则所有项目都会“记住”这些词,换个项目可能真要拼错 - 驼峰词自动识别需开启:
"cSpell.allowCompoundWords": true,否则useReducer可能被拆成use和Reducer分别校验
中文注释里夹着英文单词,为什么整句都被标红?
插件默认不支持中文词典,遇到中文文本时,会把整个字符串(比如 // 处理用户登录逻辑 loginLogic)当作一个“未知英文单词”来查——loginLogic 没问题,但前面的中文字符序列完全不在词典里,于是整行亮红。
这不是误报,是能力边界。你有两个选择:
- 精准跳过中文内容:在
.cspell.json中加"ignoreRegExpList",例如:"ignoreRegExpList": ["//[^\n]*?[u4e00-u9fa5][^\n]*", "/\*[^]*?[u4e00-u9fa5][^]*?\*/"]
(匹配含中文的单行/多行注释) - 更轻量的做法:把检查范围收窄到纯英文上下文,设
"cSpell.checkIdentifiers": false(禁用对变量名检查)、"cSpell.strings": true(保留字符串检查)、"cSpell.onlyCheckCommentsAndStrings": true - 别碰
editor.spellcheck:那是 VS Code 内置拼写,和 Code Spell Checker 无关,改了也没用
Ctrl+. 按了没反应?光标和输入法正在“抢权限”
快捷键失效几乎从不因为插件崩溃,而是触发条件没满足。VS Code 的快速修复建议只在“光标落在错误词内部 + 插件已识别该词为可纠正项”时才弹出。
- 光标必须停在波浪线覆盖的字母上,比如
consle.log的s或l,停在.后面、空格后、括号里都不行 - 中文输入法(尤其是搜狗、macOS 简体拼音)会吞掉
Ctrl+.或Cmd+.,切到英文输入法再试 - 如果单词本身太生僻(如
zustand),插件可能直接归为“未知词”而非“疑似拼写错误”,就不会给纠错建议——这时右键选“Add to Workspace Words”比等快捷键更可靠
配置文件语法错一点,插件就静默失效
.cspell.json 或 cspell.config.yaml 里一个逗号错位、引号没闭合、缩进不合法,插件不会报错,也不会提示,只是默默退场——你看到的“没标红”其实是它根本没启动。
验证方法很简单:用 VS Code 打开这个配置文件,看右下角有没有 JSON 或 YAML 校验报错;或者终端进项目根目录,执行:
npx cspell --config .cspell.json "**/*.js",如果有语法问题,命令行会直接输出错误位置。
最容易被忽略的是路径问题:ignorePaths 里写 "node_modules" 不生效,得写 "node_modules/**" 或 "**/node_modules/**",glob 模式不匹配,忽略就等于没设。


















