最近才知道,原来 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 是系统默认的。应该没有中文词典吧?
那就不知道是啥原因了,你的中文不标红。没有中文相关词典
SPQR
12
太好用了这个包,速度快,而且配置简单,只需要设置一下jinx-languages
,至于后端只需要装enchant和任意一个enchant支持的后端就行
切换到 Enchant 后,执行(flyspell-prog-mode)会有2-3秒的卡顿,好像是在后台启动ispell进程。你们有这种情况吗