当前位置:  开发笔记 > 编程语言 > 正文

如何在.emacs.d目录中对所有内容进行字节编译?

如何解决《如何在.emacs.d目录中对所有内容进行字节编译?》经验,为你挑选了4个好方法。

我决定查看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目录中进行字节编译?



1> Laurynas Biv..:

C-u 0 M-x byte-recompile-directory

将编译目录和下面所有子目录中的所有.el文件.

C-u 0部分是为了让它不要询问每个没有.elc对应文件的.el文件.


然后(一旦编译一次),只需使用相同的命令,而不使用`Cu 0`(又名`C-0`,BTW).这将只编译那些比它们的字节编译版本更新的源文件.

2> Richard Hans..:

为了在每次启动emacs时自动字节编译需要字节编译的所有内容,我将以下更改后的内容放在load-path我的.emacs文件顶部:

(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)

令人惊讶的是,它不会增加我的启动时间(除非需要编译某些东西).

为了加快我的emacs,我首先使用profile-dotemacs.el识别出缓慢的部分,然后用自动加载替换它们.



3> Mike Samuel..:

您可以使用该--batch标志从命令行重新编译.

要重新编译所有,请执行

emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'

或者从Makefile重新编译单个文件,

emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'


@ nacho4d`emacs -Q --batch -f batch-byte-compile*.el foo/*.el` - 它不会像**byte-recompile-directory**那样递归.
请改用[batch-byte-compile](http://www.gnu.org/software/emacs/manual/html_node/elisp/Compilation-Functions.html#index-batch_002dbyte_002dcompile-909).
您可能想要添加一个参数来强制重新编译,例如.emacs --batch --eval'(byte-recompile-directory"〜/ .emacs.d"0)'

4> mwilliams..:

这有点摇摆不定,但为了解决加载缓慢的问题,你可以在Emacs 23中使用新的守护进程功能.

"如果你有很多支持包,emacs启动可能会有点慢.但是,emacs 23带来了emacs --daemon,它使你能够在后台启动emacs(例如你登录时).你可以立即弹出使用emacsclient创建新的emacs窗口(框架).当然,你可能已经有旧版本的emacs'服务器',但能够在后台启动它使这个更好的解决方案"

来自http://emacs-fu.blogspot.com/2009/07/emacs-23-is-very-near.html


如果你的.bashrc(或你的shell的版本)添加了别名emacs ='emacsclient -nw -a"" - c',它将首先尝试连接到正在运行的守护进程(如果有的话),如果没有,它将启动一个并连接您.
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有