适用于emacs的交互式拼写检查程序

4
我最近切换到emacs24并升级到Ubuntu 12.04,但无法正确地使用hunspell。我认为相比aspell,hunspell更好用。但是hunspell只想使用澳大利亚字典,而不是美国英语字典,或者会导致系统死机。与此相反,我在使用aspell时,可以轻松切换字典或运行flyspell模式。

我的问题是:人们如何在emacs24中设置交互式拼写?仍然使用ispell和flyspell或者有其他偏好的设置?你是否在emacs24中使用hunspell?我可能会继续尝试解决这个问题,但想要确认其他人是否也有同样的问题。

1个回答

5

我在 OS X 上使用 hunspell(通过 homebrew 安装),并使用从 bzr 编译的 Emacs 24。我的 .emacs 中相关部分如下所示。然而,我并没有切换过词典,所以无法帮忙解决该问题。我花了一些时间来设置这些东西,并且那是很久以前的事情,所以我不记得为什么每个东西都是这个样子。

(setq-default ispell-program-name "hunspell")
(setq ispell-dictionary "american"
  ispell-extra-args '() ;; TeX mode "-t"
  ispell-silently-savep t
  )

(setq flyspell-mode-map nil)

(add-hook 'ispell-initialize-spellchecker-hook
      (lambda ()
    (setq ispell-base-dicts-override-alist
          '((nil ; default
         "[A-Za-z]" "[^A-Za-z]" "[']" t
         ("-d" "en_US" "-i" "utf-8") nil utf-8)
        ("american" ; Yankee English
         "[A-Za-z]" "[^A-Za-z]" "[']" t
         ("-d" "en_US" "-i" "utf-8") nil utf-8)
        ("british" ; British English
         "[A-Za-z]" "[^A-Za-z]" "[']" t
         ("-d" "en_GB" "-i" "utf-8") nil utf-8)))))

每当我有类似的设置时,总是会遇到这个错误,因为我已经尝试了交互式拼写页面中的所有方法来使其工作:Starting new Ispell process [american] ... ispell-init-process: Can't open affix or dictionary files for dictionary named "american". @(#) International Ispell Version 3.2.06 (but really Hunspell 1.3.2). ######### 只有使用默认字典(设为澳大利亚)才能正常工作。我无法弄清如何更改它。我认为它没有在正确的目录中查找字典。我该如何更改? - J Spen
发现问题出在debian-ispell.el上,它坚持控制ispell字典列表的设置。我能想到的唯一方法是覆盖ispell-local-dictionary-list,但我只是删除了文件以消除问题,并安装了基本的ispell和flyspell文件。 - J Spen
你应该向 Debian 报告这个错误。我很高兴你解决了它。 - Ivan Andrus
2
好的。我简要地查看了修改程序包,我认为更新hunspell设置时库的默认位置可能就能解决问题。希望能强制加载正确的库。rw-hunspell可以找到正确的库,但是我认为它没有直接设置ispell,可能是因为一些钩子在debian-ispell中。我会尝试提交错误报告。 - J Spen
离题了,但我看到你写了一些关于如何忽略区域的东西,有人链接到那里处理ispell,我想我想做的相对容易修改,但不确定如何操作。只需要检查行上的第一个文本是否为#+,然后如果它在标签列表中,就设置一个变量,不要拼写检查区域:https://dev59.com/7WbWa4cB1Zd3GeqPXYLd#8FoEoYgBc1ULPQZF-znN - J Spen
你的字典文件在哪里? - garyp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接