0

我正在尝试在 emacs 中自动启用 flyspell。特别是,我对对我的代码注释进行拼写检查很感兴趣。我遵循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

我也尝试过其他方法来添加钩子,例如这篇文,但它们都导致了同样的问题。

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

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

1 回答 1

3

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

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

问题是它add-hook需要两个参数,钩子和添加到钩子的函数,所以缺少一个参数。修复此add-hook调用或将其注释掉,它应该会更好地工作。

(您在回溯中看到的垃圾是字节编译的 Emacs Lisp 代码。当解释代码中发生错误时,相关函数的实际代码会出现在那里,但对于字节编译的情况,看到代码通常没多大用处. 如果 Emacs 能抑制它就好了...)

于 2013-03-06T00:30:31.430 回答