Emacs: 用 eval-after-load 配置 auto-complete 的问题

我用elpa(package.el)管理我的Emacs扩展.
我用下面的代码配置我的auto-complete:
(eval-after-load'auto-complete-mode
(progn
(message"Jollysaid:autocompleteisloaded.")
(require'auto-complete-config)
(ac-config-default)
(setqac-delay0.5)
))
我认为这样配置之后,如果我没有安装auto-complete,eval-after-load内部的代码就不会被执行。但是,如果我真的没有安装auto-complete,Emacs启动时会报错:Fileerror:Cannotopenloadfile,auto-complete-config.
为什么,既然我没有安装auto-complete,auto-complete-mode的feature就不能被载入,为什么后面的代码还是被evaluate呢?
为了测试eval-after-load是否象我想得那样工作,我把auto-complete-mode改成abcd-mode,也就是:
(eval-after-load'abcd-mode
(progn
(message"Jollysaid:autocompleteisloaded.")
(require'auto-complete-config)
(ac-config-default)
(setqac-delay0.5)
))
因为abcd-mode根本不存在,所以我肯定它不会被载入。
重启Emacs,Emacs仍然抱怨:Fileerror:Cannotopenloadfile,auto-complete-config.
看来,尽管abcd-mode没有被载入,但后面的代码仍然被执行了。
为什么?我对eval-after-load理解错了吗?
我想要的是:不管我有没有安装auto-complete,Emacs都不会报错;但是如果我安装了auto-complete,它要能接受我上面的配置。
我该用什么方法。
呼啦一阵风
浏览 477回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript