应修改 settings.json 中的 cSpell.userWords 字段添加单词,而非 cSpell.words;cSpell.userWords 使词全局生效,cSpell.words 仅限当前项目;右键“Add to user dictionary”可能误写入工作区词典,需手动编辑确保正确字段和语法。

如何把单词加进用户词典,而不是项目词典?
加进用户词典意味着这个词会在所有项目里被忽略,适合 React、TypeScript、useState 这类高频通用术语。操作路径是修改 settings.json 中的 cSpell.userWords 字段,不是 cSpell.words——后者只对当前工作区生效。
- 打开设置:Cmd + ,(Mac)或 Ctrl + ,(Win/Linux),点击右上角「打开设置(JSON)」图标
- 查找
cSpell.userWords;若不存在,手动添加:"cSpell.userWords": ["React", "TypeScript", "useState"] - 保存后立即生效,无需重启 VSCode
- 别误用右键菜单里的「Add to user dictionary」——它在某些版本里实际写入的是
cSpell.words(即工作区词典),尤其当项目根目录存在cspell.json时,优先级更高,导致你以为加了全局词,其实只在本项目起作用
为什么右键「Add to dictionary」有时不生效?
这个操作的行为取决于当前上下文是否识别为「工作区」。如果项目根目录下已有 cspell.json 或 .vscode/settings.json 包含 cSpell.words,VSCode 会默认将新词写入该文件;否则才写入用户级 settings.json 的 cSpell.userWords。
- 检查项目根目录是否存在
cspell.json:有则右键添加的词会进这个文件,不是用户词典 - 想强制加到用户词典,就手动编辑
settings.json,直接往cSpell.userWords数组里 push 单词 - 注意数组语法:每个单词用英文双引号包裹,逗号分隔,末尾不能多逗号,否则 JSON 解析失败,整个拼写检查会静默失效
- 常见错误现象:
cSpell.userWords写成cSpell.userword(少个 s)、字段放在了错误层级(比如嵌套在editor下),都会导致无效
Cmd+. 快捷键没反应?检查这三处配置
Cmd + .(Mac)或 Ctrl + .(Win/Linux)是调出拼写建议菜单的默认快捷键,但它依赖底层语言服务激活。失效往往不是快捷键本身被覆盖,而是拼写检查根本没跑起来。
- 确认右下角状态栏显示「Spell」或语言标识(如
en),没有说明插件未激活或语言未启用 - 检查
cSpell.enabled是否为true(不是false,排查时临时关掉容易忘记开回来) - 确认当前文件的语言模式正确:JSX 文件要设为
JavaScript React,不是纯JavaScript;Markdown 文件需是markdown,不是plaintext - 如果仍不触发,尝试在命令面板(Cmd+Shift+P)中运行
Developer: Toggle Developer Tools,看 Console 里是否有cSpell相关报错,常见是词典包加载失败(比如装了cSpell Dict Chinese但没重启)
自定义快捷键让「添加到用户词典」一键完成
VSCode 默认没给「Add to user dictionary」绑定快捷键,每次都要右键 → 移动鼠标 → 点击,效率低。可以自己补一个,关键是用对命令 ID。
- 打开
keybindings.json(Cmd+Shift+P →Preferences: Open Keyboard Shortcuts (JSON)) - 添加这条规则:
{"key": "alt+cmd+u", "command": "cSpell.addWordToUserDictionary", "when": "editorTextFocus && cSpell.haveSpellingError"} -
when条件确保只在编辑器聚焦且当前光标处有拼写错误时才生效,避免误触 - 别用
cSpell.addToUserDictionary(旧名,已废弃),VSCode 会提示 command not found - 保存后,把光标停在标红单词上,按
Alt+Cmd+U,单词立刻进cSpell.userWords,比右键快得多


















