在emacs / w32上启用flyspell模式?

时间:2010-09-27 16:06:07

标签: emacs flyspell

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

我从this site为Windows安装了ispell,然后我按照here中的步骤进行了操作。

  1. 我下载了flyspell-1.7a.el,将其重命名为flyspell.el,并将其复制到load-path目录。
  2. 我修改了.emacs
  3. ;;; http://www-sop.inria.fr/members/Manuel.Serrano/flyspell/flyspell.html
    ;;; flyspell mode
      (require 'flyspell)
      (autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." 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")
    

    可能出现什么问题?

    的解决方案

    这是win32的问题,应该使用适用于emacs / win32的问题,如the book of emacs中所述。

    1. 从其中一个site下载ispell.zip。
    2. 将ispell.exe复制到PATH目录,并将英语字典复制到主目录。
    3. 使用ASPELL解决方案

      vedang使用aspell at this post给出了更好的答案。

      它有Windows安装程序,here中的字典安装。在.emacs中添加以下行可以和我一起使用。

      (custom-set-variables
          '(ispell-dictionary "british")
          '(ispell-program-name "H:\\bin\\aspell\\bin\\aspell.exe"))
      

1 个答案:

答案 0 :(得分:1)

require flyspell(将加载库)两者都没有意义,然后还为其两个函数声明autoload s(其目的是避免< / em>在被调用的函数之前加载库。

我不知道这是否导致错误(可能后续的autoloads破坏了真正的定义?),但绝对不需要两者。

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

编辑:实际上{23}中默认情况下flyspell-delay-command未自动加载,因此如果您决定删除该请求,则可能需要保留该行。