【分享】在 Emacs 中使用 Enchant 作为 spell-checker

最近才知道,原来 Emacs 26 开始,Emacs 就支持了 Enchant,通过这个拼写检查前端可以支持其他 Emacs 不支持的拼写检查后端(如AppleSpell,Nuspell等等),而且它还支持多个后端一起使用,支持多种语言(我只用英语)。

在macOS上安装:

sudo port install enchant2
# 或者
brew install enchant

在配置文件~/.config/enchant/enchant.ordering 加上下面的配置就会使用 macOS 自带的 AppleSpell:

*:AppleSpell

详细可以参考 Enchant 官方文档

在 Windows 上安装

Windows 上可以通过 msys2 的 mingw64 安装:

pacman -S mingw64/mingw-w64-x86_64-enchant

在配置文件 C:\Users\<username>\AppData\Local\enchant\enchant.ordering中这样设置就会用多个后端。

   *:nuspell,aspell,hunspell
   en_US:nuspell,aspell,hunspell

Emacs 配置

  (ispell-program-name "enchant-2")
  (ispell-dictionary "english")

以下是我的个人配置,配合 flyspell 和 flyspell-correct 使用:

6 个赞

可以结合jinx使用了。

把中文给排除掉,不然一片红。

    (add-to-list 'jinx-exclude-regexps '(t "\\cc"))

感觉比 flyspell 快。

3 个赞

用上了,不过在 emacs-lisp-mode 还不是很好用。要是能排除注释中的 Elisp 代码更好了。

速度其实快。输入字符的过程中,检查的太快,手速跟不上就会提示红线,还有待提升。

为什么会检查中文,我的 enchant 并不会检查中文,用的 AppleSpell

不知道啊,你是怎么设置的?我不排除中文,org-mode中全标红。

我就是用的上面图中的官方默认设置。

enchant 的配置文件~/.config/enchant/enchant.ordering 只有下面这行

*:AppleSpell

jinx 在 Windows 上还有点问题,识别不了安装的字典。

Jinx: No dictionaries available for ‘jinx-languages’ = "en_US" [2 times]

enchant 配置文件和你的一样,jinx 配置

(use-package jinx
    :hook (org-mode . jinx-mode)
    :bind ("C-c c" . jinx-correct)
    :config
    (setq jinx-languages '("en")))

打开一个 org 文档,中文下全标红。

你装什么中文词典了吗?

apellspell 是系统默认的。应该没有中文词典吧?

那就不知道是啥原因了,你的中文不标红。没有中文相关词典

太好用了这个包,速度快,而且配置简单,只需要设置一下jinx-languages,至于后端只需要装enchant和任意一个enchant支持的后端就行

切换到 Enchant 后,执行(flyspell-prog-mode)会有2-3秒的卡顿,好像是在后台启动ispell进程。你们有这种情况吗

没遇到有卡顿的情况。

感谢,已加入我的 .emacs

我也遇到了,我直接换成jinx了

我是在emacs起动的时候会卡很久才初始完成