拼写检查在 emacs 文本编辑器中不起作用

spell check not working in emacs text editor

我最近在我的新系统中安装了 fedora 21,然后安装了 emacs 24 文本编辑器。当我尝试进行拼写检查时,我在底部收到以下消息:

ispell-phaf: 没有与 nil 匹配的条目。

我知道它与与 ispell 拼写检查工具链接的词典有关,但无法找出问题所在。请朋友帮帮我....

就像@lawlist 提到的,错误来自函数ispell-parse-hunspell-affix-file。 ispell 试图做的是从 ispell-dictionaryispell-local-dictionary 中提取您的 set 字典,然后将该值传递给上述函数。然后该函数提取在 ispell-local-dictionary-alist 中定义的列表,然后将其传递给 hunspell。

所以你特别需要做的是向 ispell-local-dictionary-alist 添加一个条目,就像这样(示例取自 here:

(setq ispell-local-dictionary-alist '(
("american"
       "[[:alpha:]]"
       "[^[:alpha:]]"
       "[']"
       t
       ("-d" "en_US" "-p" "D:\hunspell\share\hunspell\personal.en")
       nil
       iso-8859-1))

你需要确保在 "american" 的地方,你的字典名称与你输入 ispell-dictionaryispell-local-dictionary 的值完全匹配,然后确保通过此行将您想要的参数传递给 hunspell:("-d" "en_US" "-p" "D:\hunspell\share\hunspell\personal.en")。您可以看到 hunspell 将执行哪些命令 here。希望这至少能为您提供更有意义的错误消息,以便您知道还有什么问题。

我在迁移到新 OS 时也遇到了类似的问题。迁移还将我的 emacs 从 24.3 升级到 24.4(现在我在 24.5)。

我通过安装以下软件解决了这个问题:

rw-language-and-country-codes
rw-ispell
rw-hunspell

然后重新启动 emacs。我被困了很长时间,因为我忘记重启 emacs - 所以不要忘记!维基也可能有帮助:http://www.emacswiki.org/emacs/InteractiveSpell

我在安装 Fedora 22 后遇到了类似的问题。我通过从 Fedora 存储库安装 hunspell-en-GB 软件包解决了这个问题。

这终于对我有用了(详细信息在下面的博客中)...

http://blog.binchen.org/posts/what-s-the-best-spell-check-set-up-in-emacs.html

我选择了上面博客中的'suggestion for non-programmers'...

感谢大家的支持... @lawlist @Allan Zhang @Lucas @Rob Spanton

即使错误与 Hunspell 函数有关,当 Emacs 找不到 aspell 时也会弹出此错误。默认情况下不使用 Hunspell,即使它存在于系统中(据我所知)。确保它和一些词典已安装:

sudo yum install aspell aspell-en

或其他语言的其他词典。

您可能对 Fedora 软件包搜索感兴趣:

https://apps.fedoraproject.org/packages/aspell