~/.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显示以下错误:
答案 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。