拼写检查在 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-dictionary
或 ispell-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-dictionary
或 ispell-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 软件包搜索感兴趣:
我最近在我的新系统中安装了 fedora 21,然后安装了 emacs 24 文本编辑器。当我尝试进行拼写检查时,我在底部收到以下消息:
ispell-phaf: 没有与 nil 匹配的条目。
我知道它与与 ispell 拼写检查工具链接的词典有关,但无法找出问题所在。请朋友帮帮我....
就像@lawlist 提到的,错误来自函数ispell-parse-hunspell-affix-file
。 ispell 试图做的是从 ispell-dictionary
或 ispell-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-dictionary
或 ispell-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 软件包搜索感兴趣: