sublime text 原生拼写检查需同时配置 spell_check、dictionary 和语法,三者缺一不可;状态栏显示“spell check”是唯一启用信号,标红线不等于开启。

Sublime Text 原生不提供“英文拼写错误自动提醒”——它不会弹窗、不实时替换、不分析上下文,只在满足严格条件时标红错词并给出右键建议。想让它工作,必须手动配对 spell_check、dictionary 和当前文件语法,三者缺一不可。
怎么确认拼写检查真开了?看状态栏,别信标红
右下角状态栏出现 Spell Check 是唯一可信信号。标红线 ≠ 开了:可能是 LSP 报错、主题样式冲突或语法高亮异常。按 F6 可临时切换,但它不保存、不跨视图、关掉文件就失效。真正启用必须写进设置,且仅对当前语法生效。
- 打开一个
.md或纯文本文件(View → Syntax → Plain Text) - 菜单 →
Preferences → Settings – Syntax Specific(注意不是全局Settings) - 右侧用户设置中写入:
{"spell_check": true, "dictionary": "Packages/Language - English/en_US.dic"} - 保存后,状态栏必须立刻出现 Spell Check 字样才算成功
dictionary 路径写错 = 静默失败,标红但无建议
spell_check 设为 true 却右键没 “Change to 'receive'”、Add to Dictionary 灰掉?90% 是词典路径不对。Sublime 不报错、不 fallback、不提示,只跳过加载。
- 正确路径只有:
Packages/Language - English/en_US.dic(注意空格、“-”、大小写、无dictionaries/子目录) - 常见错误:
"en_US"、"en_US.dic"、"Packages/Language - English/dictionaries/en_US.dic"(多一级)、"Packages/Language - English/en_US.aff"(后缀错) - 验证方法:菜单 →
Preferences → Browse Packages…→ 进入Language - English/目录 → 确认存在en_US.dic(不是.aff或其他) - macOS 权限受限时,可复制
en_US.dic到Packages/User/,再设为"dictionary": "Packages/User/en_US.dic"
为什么 .py / .js 文件里拼写检查没反应?语法包默认忽略
Python、JavaScript 等语法包主动忽略 spell_check 字段。你在全局 Settings 里加 "spell_check": true 对它们完全无效——这不是 bug,是设计如此。
- 误在
.py文件里启用,会导致recieveData这类变量名被标红,右键Add to Dictionary还会把它加进词典,下次真拼错receive就再也标不出来了 - 想检查注释里的拼写?原生
spelling_selector不可靠:设成"comment"在 Python/JS 中漏检严重,"""This is a sentance."""里的sentance常被跳过 - 真正可用方案是装
Spell Check Comments插件(通过 Package Control 安装),它专为注释识别设计,能准确处理#、//、/* */、"""等边界,且自动排除字符串和代码部分
别信“自动纠错”,原生根本不支持
Sublime 原生拼写检查只做三件事:标红线、右键给建议、允许加词。它不会在输入时把 teh 变成 the,也不会自动替换。所谓“自动纠错”必须靠插件(如 AutoReplace),但规则要手写,极易误伤。
- 例如把
teh→the看似安全,但在字符串"teh_api_v2"里替换就直接 break 接口 - 若坚持用自动替换,务必关闭对所有
source.开头的语法(如source.python),只限定在text.plain或text.html.markdown上 - 中文支持需手动放
zh_CN.dic到Packages/User/,且原生不校验拼音或语义,效果有限
最易被忽略的点是:拼写检查依赖语法高亮标记的 scope。如果注释没被正确归为 comment(比如某些 Vue 或自定义语法),哪怕配置全对,它也扫不到那行字。光标停在疑似注释里,按 Ctrl+Shift+P 输入 show_scope_name,看输出是否含 comment 或 string,才是验证起点。











