必须确保右下角显示spell图标或语言代码,否则插件未加载上下文,即使cspell.checkprograms设为true也无效;还需cspell.enabledlanguageids显式包含正确语言id(如"javascript")、cspell.language=["en","zh-cn"]、allowcompoundwords=true,并安装cspell-dict-chinese扩展。

Code Spell Checker 默认不检查变量名,想让它标红 recieveData 而不是 receiveData,必须手动开启解析并配对语言 ID。
为什么改了 cSpell.checkPrograms 还是不标红标识符?
根本原因不是配置漏了,而是插件压根没加载到当前文件的语言上下文。常见表现:打开一个 .ts 文件后,右下角状态栏没有出现 Spell 图标或语言代码(如 en)。这时即使 cSpell.checkPrograms 设为 true,也完全不触发解析。
- 点右下角语言模式(比如显示 “TypeScript React”),确认不是 “TypeScript”——JSX 字符串和标识符依赖前者才能被识别
- 按
Ctrl+Shift+P输入Spell Checker: Toggle回车,强制开关一次,常能触发重载 - 检查
settings.json里有没有误加"cSpell.enabled": false,这个全局禁用项一旦存在,其他所有配置全部失效
cSpell.enabledLanguageIds 必须显式列出语言 ID,"js" 或 "ts" 都无效
VSCode 内部语言 ID 是严格定义的字符串,不是缩写或别名。cSpell.enabledLanguageIds 如果只写 ["js"],插件会静默跳过所有 JavaScript 文件;写成 ["javascript", "typescript"] 才真正生效。
- 最稳的方式:打开一个
.py文件 →Ctrl+Shift+P→ 输入Preferences: Configure Language Specific Settings→ 选 Python,VS Code 自动插入"[python]": { ... }块,并给出正确 ID - 常见有效 ID:
javascript、typescript、python、markdown、shellscript、json(注意不是jsonc) - 如果用了自定义扩展名(如
.vue或.astro),需额外在files.associations中绑定语言 ID,否则配置不命中
中英文混合注释总被误标?三者缺一不可
比如 // 获取用户信息 整段标红,不是词典没装,而是校验逻辑没对齐。必须同时满足:
-
cSpell.language设为["en", "zh-CN"](注意是zh-CN,不是zh或zh-cn) -
cSpell.allowCompoundWords设为true,否则userInfo会被拆成user和info,两个都进词典,真实拼错反而逃过检查 - 必须安装扩展
cspell-dict-chinese(VSCode 扩展市场搜 exact 名称),否则zh-CN对应的词典为空,等于白配
忽略特定单词的五种方式,优先级和适用场景不同
不是所有忽略方式都等效。实际开发中容易混用导致失效:
-
cSpell.words数组写在settings.json里:适合跨项目复用的通用术语(如"JWTToken"、"XMLHttpRequest") - 文件顶部加
// cSpell:ignore MyComponent, propsData:仅作用于当前文件,且必须在第一行(前面不能有空行或#!/usr/bin/env等 shebang) - 项目根目录建
cSpell.json:团队协作首选,支持words+ignorePaths(如"**/dist/**")集中管理 -
.cspellignore文件:只管路径排除,不处理单词,语法类似.gitignore - 右键单击标红单词 → “Add to Workspace Ignore List”:临时快捷,但只写入工作区
.vscode/settings.json,不进版本控制
真正难搞的是变量名拼错却没标红——那不是插件坏了,是你还没告诉它“这个文件里的标识符也得当纯文本查”。语言 ID、checkPrograms、词典扩展,三者卡在一个点上,少一个就静默失效。











