sublime text原生拼写检查默认关闭,唯一生效信号是状态栏右下角显示“spell check”;必须在syntax specific设置中启用spell_check并精确配置dictionary路径为"packages/language - english/en_us.dic",仅对plain text/markdown/restructuredtext文件有效。

Sublime Text 原生拼写检查不是“开了就能用”的功能,它默认关闭、不自动识别注释、不区分变量名和自然语言,且词典路径错一个字符就静默失效——你看到波浪线≠它在工作,右下角没显示 Spell Check 就等于没开。
怎么确认 spell_check 真生效了?只看状态栏右下角
别信标红线,LSP 报错、语法高亮异常、自定义 scope 样式都可能画红波浪。唯一可信信号是右下角出现 Spell Check 字样。按 F6 可临时切换,但它不保存、不跨视图、关文件就重置。真要长期启用,必须进 Preferences → Settings – Syntax Specific(不是全局 Settings),且当前文件语法得是 Plain Text、Markdown 或 reStructuredText。
dictionary 路径写错 = 功能白配,不报错也不提示
写了 "spell_check": true 却右键没 “Change to 'receive'”、Add to Dictionary 灰掉?90% 是 dictionary 路径不对。Sublime 不 fallback、不警告、不猜路径,只默默跳过词典加载。
- 正确路径只有:
"Packages/Language - English/en_US.dic"(注意空格、“-”、大小写、无dictionaries/子目录) - 常见错误:
"en_US.dic"、"Packages/Language - English/dictionaries/en_US.dic"(多一级)、"Packages/Language - English/en_US"(缺后缀) - 验证方法:菜单
Preferences → Browse Packages…→ 进入Language - English/目录 → 确认存在en_US.dic(不是.aff或其他) - macOS 权限受限时,可复制
en_US.dic到Packages/User/,再设为"Packages/User/en_US.dic"
想检查 Python/JS 注释里的拼写?原生做不到,别硬调 spelling_selector
spelling_selector 是个 scope 过滤器,不是语义分析器。设成 "comment" 在 Python 或 JS 里效果极差:
-
"""This is a sentance."""中的sentance常被漏检 -
/* block comment */和多行字符串中间混写的自然语言识别不稳定 -
console.log("wong"); // this is wrong两个wong都被标红,无法排除字符串字面量
真正可用方案是装 Spell Check Comments 插件(通过 Package Control 安装)。它专为注释设计,能准确识别 #、//、/* */、"""、'''、<!-- --> 等主流语法,并严格排除字符串、正则字面量、JSON key 等非自然语言区域。
为什么不能在 .py / .js 文件里全局开 spell_check?
原生拼写检查不识别语法结构,只按 Unicode 字符块切分单词查词典。开了 spell_check 就是全文本扫描:
-
def initalize_user():→initalize标红 -
user_data = {"recieve": True}→recieve和recieve(key)都标红 -
"""This is a sentance."""→sentance标红,但中间混着的if x == 1:也会被当单词扫 - 右键选
Add to Dictionary会把initalize_user整个加进词典,下次真拼错initialize就再也看不到了
最易被忽略的是:拼写检查是否启用,和你“正在编辑什么文件”强绑定;而词典路径是否有效,决定了它到底是在标错词,还是在假装工作。











