我决定查看Emacs,我非常喜欢它.现在,我正在使用Emacs入门套件,它提供了更好的默认设置和一些很好的自定义默认安装的Emacs.
我已经定制了一点,添加了一些东西,如yasnippet,颜色主题,未绑定和其他东西.我已经设置了一个github存储库,我保留了所有的自定义设置,这样我就可以从多个地方访问它们,或者万一我的.emacs.d目录丢失了.
所有这一切都非常好,但是有一个问题:Emacs大约需要1-2秒才能加载.AFAIK我可以使用Mx byte-compile-file编译单个.el文件到.elc,它可以工作.但是有很多.el文件,我想知道是否有办法用简单的命令或其他东西编译它们,以加快Emacs的加载速度.我的Emacs并不总是打开,我经常打开和关闭它,特别是在我将其设置为Total Commander中的编辑命令的默认编辑器以便更快地习惯它(是的,windows xp这里).
我的Emacs版本是22.3.是的,没有任何自定义的默认Emacs安装会立即启动.
我不确定在加载时,首选哪个版本,.el或编译.elc的方式是Oo
那么,是否有一个elisp命令或Emacs命令行开关使Emacs在.emacs.d目录中进行字节编译?
C-u 0 M-x byte-recompile-directory
将编译目录和下面所有子目录中的所有.el文件.
这C-u 0
部分是为了让它不要询问每个没有.elc对应文件的.el文件.
为了在每次启动emacs时自动字节编译需要字节编译的所有内容,我将以下更改后的内容放在load-path
我的.emacs
文件顶部:
(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)
令人惊讶的是,它不会增加我的启动时间(除非需要编译某些东西).
为了加快我的emacs,我首先使用profile-dotemacs.el识别出缓慢的部分,然后用自动加载替换它们.
您可以使用该--batch
标志从命令行重新编译.
要重新编译所有,请执行
emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'
或者从Makefile重新编译单个文件,
emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'
这有点摇摆不定,但为了解决加载缓慢的问题,你可以在Emacs 23中使用新的守护进程功能.
"如果你有很多支持包,emacs启动可能会有点慢.但是,emacs 23带来了emacs --daemon,它使你能够在后台启动emacs(例如你登录时).你可以立即弹出使用emacsclient创建新的emacs窗口(框架).当然,你可能已经有旧版本的emacs'服务器',但能够在后台启动它使这个更好的解决方案"
来自http://emacs-fu.blogspot.com/2009/07/emacs-23-is-very-near.html