sublime如何快速切换拼写检查语言?(多语种写作支持)

11次阅读

sublime Text 拼写检查语言由 spelling_language 设置项控制,需使用 ISO 标准代码(如 en_US、zh_CN),依赖对应词典文件(.dic + .aff),且必须置于指定路径、UTF-8 无 bom 编码;可通过语法特定设置或自定义插件实现按文件类型自动匹配或快捷键轮换。

sublime如何快速切换拼写检查语言?(多语种写作支持)

sublime text 本身不提供一键切换拼写检查语言的快捷键或菜单项,但可以通过修改 settings 中的 spelling_language 值实现快速切换——关键在于把语言配置做成可批量替换的预设,而非每次手动编辑 jsON。

拼写检查语言由 spelling_language 控制,不是系统语言或文件语法

Sublime 的拼写检查完全依赖 spelling_language 设置项,和当前文件的 scope(如 source.python)或操作系统语言无关。它只认形如 en_USzh_CNfr_FR 这样的 ISO 标准代码,且必须对应已安装的词典文件(.dic + .aff)。

  • spelling_language 默认值是 NULL,此时使用平台默认(通常为英文),不是自动识别内容语言
  • 词典文件需放在 Packages/User/Spelling/Packages/Spelling/ 下,否则设置无效
  • 修改后无需重启,但需触发一次拼写重载:保存设置文件或执行 view.run_command("toggle_spelling")

Preferences → Settings – Syntax Specific 按文件类型绑定语言

多语种写作时,最实用的方式不是全局切换,而是按文件后缀或语法自动匹配语言。比如 .md 写中文就用 zh_CN,写英文技术文档就用 en_US

  • 打开一个 markdown 文件 → Preferences → Settings – Syntax Specific
  • 在右侧添加:
    {     "spelling_language": "zh_CN" }
  • 保存后,所有 .md 文件都会自动启用中文拼写检查,无需手动干预
  • 同理,对 Plain TextreStructuredText 语法也可单独配置

用命令行或插件实现真正“快速切换”

如果真需要键盘触发切换(例如中/英/日三语轮换),得靠自定义命令。官方无内置支持,但可用 sublime_plugin.TextCommand 实现:

  • 新建 Packages/User/toggle_spelling_lang.py,内容为
    import sublime import sublime_plugin 

    class ToggleSpellingLangCommand(sublime_plugin.TextCommand): def run(self, edit): view = self.view langs = ["en_US", "zh_CN", "ja_JP"] current = view.settings().get("spelling_language", "en_US") try: idx = langs.index(current) next_lang = langs[(idx + 1) % len(langs)] except ValueError: next_lang = langs[0] view.settings().set("spelling_language", next_lang)

    强制刷新拼写面板

        view.run_command("toggle_spelling")     view.run_command("toggle_spelling")
  • 绑定快捷键:在 Preferences → Key Bindings 中加
    [     { "keys": ["ctrl+alt+s"], "command": "toggle_spelling_lang" } ]
  • 注意:切换后需调用两次 toggle_spelling 才能刷新 ui,这是 Sublime 拼写模块的已知行为

真正容易被忽略的是词典文件的编码与路径——zh_CN.dic 必须是 UTF-8 无 BOM,且不能放在子文件夹里;一旦路径错或编码错,spelling_language 设再对也静默失败,界面毫无提示。

text=ZqhQzanResources