7

我需要在 emacs/w32 上安装/运行 flyspell 模式。

我从这个站点安装了 ispell for windows ,然后我按照这里写的程序进行操作。

  1. 我下载了 flyspell-1.7a.el 将其重命名为 flyspell.el,并将其复制到 load-path 目录。
  2. 我修改了 .emacs
;;; http://www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html
;;; 咒语模式
  (需要'flyspell)
  (autoload 'flyspell-mode "flyspell" "On-the-fly 拼写检查器。" t)
  (autoload 'flyspell-delay-command "flyspell" "Delay on command." t) (autoload 'tex-mode-flyspell-verify "flyspell" "" t)
)

但是,当我使用 flymode 运行 emacs 时,出现以下错误。

(error "Autoloading failed to define function turn-on-flyspell")

可能有什么问题?

ISPELL 的解决方案

这是 win32 问题的拼写,应该使用与 emacs/win32 一起工作的那个,如emacs 书中所述

  1. 从其中一个站点下载 ispell.zip 。
  2. 将ispell.exe 复制到PATH 目录,将英文词典复制到主目录。

使用 ASPELL 的解决方案

vedang在这篇文章中用 aspell 给出了更好的答案。

它有 Windows 安装程序,字典安装在这里。在 .emacs 中添加以下行对我来说效果很好。

(自定义设置变量
    '(ispell-dictionary "英国")
    '(ispell-program-name "H:\\bin\\aspell\\bin\\aspell.exe"))
4

1 回答 1

1

requireflyspell(它将加载库)和autoload为它的两个函数声明 s (其目的是避免在调用这些函数之前加载库)都没有什么意义。

我不知道这是否会导致错误(可能随后的自动加载破坏了真实的定义?),但绝对不需要两者。

事实上,在 Emacs 23.2.1 上(如果不是更早的话),flyspell.el 声明了它自己的自动加载(我相信所有内置库也是如此),所以你真的不应该做任何事情,如果您正在运行足够最新的版本。我们在谈论哪个版本的 Emacs?

edit: in fact flyspell-delay-command is not autoloaded by default in 23.2.1, so you might want to retain that line if you decide to remove the require.

于 2010-09-27T19:54:39.027 回答