在Emacs里面动态的加载一些插件或模块
在Emacs里,如果增加了很多插件和模块,启动的时候就非常的慢,因为它会
将你定义的东西都加载上来,但事实上我们定制的许多东西不是每次都会使用,比如
ECB,CEDET等,非常的庞大,而且不会每次启动的时候都需要将它启动.因为就算启动
了也不会立即就开始使用,只有查看代码的时候才需要.这样我们就可以在需要的时
候在启动它,以节约启动时间,当然你也可以用load-file或者load-library来进行
调用,而我今天给大家提供另外一种选择:将插件的启动激活\启动参数等都集成到
一个函数里面,这样你就可以将这个函数绑定到快捷键或者直接在mini-buffer里面
调用函数了. 比如我要使用ecb的话,需要按F12(或者在mini-buffer里面M-x ecba
RET就可以了,而且在启动的时候不需要来加载这个庞然大物.其实很简单,只需要在
配置文件里面添加下面的代码就可以了:
(defun ecba () (interactive "") (when (locate-library "ecb") (require 'ecb-autoloads) ;;加载ecb (setq ecb-auto-activate nil ecb-tip-of-the-day nil ecb-tree-indent 4 ecb-windows-height 0.5 ecb-windows-width 0.18 ecb-auto-compatibility-check nil ecb-version-check nil inhibit-startup-message t) ) ;; cedet (when (locate-library "cedet") (require 'cedet) ) (ecb-activate) ) |
也就是将所有的有关启动的代码都集中到定义的ecba()这个函数里面来,并且集成
到系统里面去就OK了