atom默认不检查代码文件中的拼写,需手动配置spell-check包的grammars范围,如source.js string.quoted、source.js comment.line等,并关闭自动纠正以防误改中文;推荐用linter-spell替代原生插件以避免与linter冲突。

Atom 里拼写检查默认不工作
Atom 本身不内置拼写检查,装了 spell-check 包也不代表代码里的字符串或注释能被查——它默认只检查纯文本(如 .txt)、Markdown、LaTeX 等非编程语境。你在 .js 或 .py 文件里写错 recieve,只要不在注释或字符串里,spell-check 根本不会扫描。
让 spell-check 扫描字符串和注释
关键在配置语法范围(grammar scope)。需要手动把目标语言的字符串、注释等语法节点加进 spell-check 的扫描白名单:
- 打开 Atom 设置 → Packages → 搜索
spell-check→ 点击Settings - 找到
Grammars输入框,添加对应语言的 scope 名称,例如:source.js string.quoted, source.js comment.line, source.py string.quoted, source.py comment.line - scope 名称必须准确:用
Cmd+Shift+P(macOS)或Ctrl+Shift+P(Windows/Linux)打开命令面板,输入Editor: Log Cursor Scope,光标停在字符串上就能看到当前 scope,比如source.js string.quoted.double.js,取前缀source.js string.quoted即可 - 多个 scope 用英文逗号 + 空格分隔,不能换行,也不能漏空格
中文项目慎用 spell-check 的“自动纠正”
该功能对中英文混排极不友好,尤其在注释里写“用户点击按钮后触发回调”,它可能把“回调”误判为错词并改成“回条”或直接清空。建议:
- 关闭
Automatically correct spelling开关 - 保留
Highlight misspelled words,靠下划线提示即可 - 若需中英双语检查,不要依赖
spell-check内置词典,改用外部工具如codespell配合 linter 插件(如linter-codespell),它支持自定义词典且不干扰编辑流
spell-check 和 linter 插件冲突时怎么办
常见现象:启用 linter-eslint 后,拼写下划线突然消失。这不是 bug,而是 Atom 渲染层优先级问题——linter 的装饰器(decoration)覆盖了 spell-check 的下划线。
- 临时解决:在
spell-check设置里勾选Use shadow DOM(如果可用) - 更稳方案:改用
linter-spell替代原生spell-check,它专为代码场景设计,与 linter 生态兼容更好 - 验证是否生效:在字符串里故意写
definately,保存后看是否有红色波浪线,且不被 ESLint 或 Pylint 的提示挤掉
scope 配置写错一个字符就失效,而且不同语言插件更新后 scope 可能变动,比如从 source.ts 变成 source.tsx——得重新用 Log Cursor Scope 确认。











