错误的参数数量:called-interactively-p,1

时间:2012-05-01 15:53:42

标签: emacs centos

~/.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时,它会将错误称为“参数数量错误:called-interactively-p,1”。换句话说,emacs会在行(ac-config-default)之前发现错误。

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

问题>我对ubuntu使用了相同的设置而没有任何问题。现在我正在转换centos 6.2。有没有办法解决这个问题?

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

3 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

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