8
~/.emacs

;; http://cx4a.org/software/auto-complete/manual.html
(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)

当我加载 emacs 时,它会将错误抱怨为“参数数量错误:称为交互式 p,1”。换句话说,emacs 发现错误直到(ac-config-default).

当我检查文件 .emacs.d/auto-complete.elc 时,我发现了字符串“call-interactively-p”。

问题> 我在 ubuntu 上使用了相同的设置,没有问题。现在我正在切换centos 6.2。有没有办法解决这个问题?

emacs --debug-init 显示以下错误:

͂

4

3 回答 3

12

值得一提的是,如果您将 emacs.d 目录从一台机器移动到另一台机器,则可能会出现此错误。

如果是这种情况,删除已编译的 *.elc 文件应该可以解决问题。

于 2012-10-10T00:24:44.960 回答
4

在最近的 Emacsen 中,called-interactively-p需要一个参数。

C-h f ac-quick-help RET,然后替换(called-interactively-p)(called-interactively-p 'any)并重新编译/重新加载。或者将此错误发送给包的作者。

于 2012-05-01T16:10:10.267 回答
2

[正如我最近在其他一些stackoverflow问题中提到的,强烈建议不要将“~/.emacs.d”放在你load-path的目录中,因为~/.emacs.d目录可以/将保存名称与真正的emacs包冲突的配置文件. 即把自动完成文件放在~/.emacs.d 的*子*目录中。]

您的错误看起来很奇怪:虽然called-interactively-p在 Emacs-23 中声明为正好采用 1 个参数,但它实际上也接受 0 个参数(以减轻想要同时支持 Emacs-22 和 Emacs-23 的外部包的痛苦)。因此,您的配置中似乎还有其他东西以某种方式重新定义了所谓的交互式-p。

于 2012-05-01T17:31:09.067 回答