我用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,它要能接受我上面的配置。我该用什么方法。
添加回答
举报
0/150
提交
取消