在.emacs文件中包含flyspell挂钩时出错

时间:2013-03-05 23:18:51

标签: emacs elisp flyspell

我正在尝试在emacs中自动启用flyspell。特别是,我有兴趣拼写检查我的代码的注释。我跟着documentation in EmacsWiki并将以下代码添加到我的.emacs:

  (add-hook 'c++-mode-hook
          (lambda ()
            (flyspell-prog-mode)
            ; ...
          ))

然而,我得到以下错误,我不明白,我坦率地被垃圾emacs提供为错误(获得emacs -debuginit):

Debugger entered--Lisp error: (wrong-number-of-arguments #[(hook function &optional append local) "\305$
^@^H\306L\210\307^H!\204^U^@\310^H\306\"\210    \203)^@\311^H!\2048^@\312^H!\313CL\210\2028^@^HJ:\2036^$
@\315=\203T^@
C^R^K
\235\204s^@^K;\203c^@\316^K!^S^L\203o^@\304
^KC\"\202r^@^K
B^R     \203\224^@^K9\203\216^@^K\317N\203\216^@^H\320N\204\216^@\321^H\320\317#\210^H
L\202\230^@\310^H
\")\207" [hook local hook-value function append boundp nil default-boundp set-default local-variable-if$
  add-hook(google-make-newline-indent)
  eval-buffer(#<buffer  *load*> nil "/Users/fons/.emacs" nil t)  ; Reading at buffer position 2136

我还尝试过其他方法来添加这个blog post之类的钩子,但它们都会导致同样的问题。

注意:我正在运行emacs 24,在OSX 10.8中安装了macports

$ emacs --version | head -n 1
GNU Emacs 24.2.1

1 个答案:

答案 0 :(得分:3)

您的问题似乎是.emacs文件中不相关的形式。从那个回溯中,它可能看起来像这样:

(add-hook 'google-make-newline-indent)

问题是add-hook有两个参数,钩子和函数要添加到钩子,所以缺少一个参数。修复此add-hook来电或对其进行评论,它应该会更好。

(你在回溯中看到的垃圾是字节编译的Emacs Lisp代码。当解释代码中出现错误时,有问题的函数的实际代码出现在那里,但对于字节编译的情况,看到代码通常是如果Emacs可以抑制那个......那么会很好。