在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了