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

发布于 2024-07-29 06:39:28 字数 1062 浏览 7 评论 0原文

我决定尝试一下 Emacs,我非常喜欢它。 现在,我正在使用 Emacs Starter Kit,它提供了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 目录中的所有内容?

I have decided to check out Emacs, and I liked it very much. Now, I'm using the Emacs Starter Kit, which sort of provides better defaults and some nice customizations to default install of Emacs.

I have customized it a little, added some stuff like yasnippet, color-themes, unbound, and other stuff. I've set up a github repository where I keep all of the customizations so I can access them from multiple places or in case something goes bad and I lose my .emacs.d directory.

All of this is very nice, but there is a problem: Emacs takes about 1-2 seconds to load. AFAIK I can compile individual .el files with M-x byte-compile-file to .elc, and it works. But there are a lot of .el files, and I wonder if there is a way to compile them all with a simple command or something, to speed up the loading of Emacs. My Emacs is not always open, and I open and close it quite frequently, especially after I've set it up as a default editor for edit command in Total Commander to get used to it faster (yeah, windows xp here).

My Emacs version is 22.3. And yes, the default Emacs installation without any customizations fires up instantly.

I am not sure which version is preferred when loading, the .el or compiled .elc one by the way O.o

So, is there an elisp command or Emacs command line switch to make Emacs byte-compile everything in .emacs.d directory?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

甜宝宝 2024-08-05 06:39:28

Cu 0 Mx byte-recompile-directory

将编译该目录及其下面所有子目录中的所有 .el 文件。

Cu 0 部分是为了使其不询问每个没有 .elc 对应项的 .el 文件。

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

will compile all the .el files in the directory and in all subdirectories below.

The C-u 0 part is to make it not ask about every .el file that does not have a .elc counterpart.

蓝色星空 2024-08-05 06:39:28

的所有内容进行字节编译,我在 .emacs 文件顶部对 load-path 进行更改后添加了以下内容:

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

为了在每次启动 emacs 时自动对需要字节编译 ,它不会增加太多我的启动时间(除非需要编译某些东西)。

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

To automatically byte compile everything that needs byte compiling each time I start emacs, I put the following after my changes to load-path at the top of my .emacs file:

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

Surprisingly, it doesn't add much to my startup time (unless something needs to be compiled).

To speed up my emacs, I first identified the slow parts using profile-dotemacs.el and then replaced them with autoloads.

睫毛上残留的泪 2024-08-05 06:39:28

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

要重新编译所有文件,请

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

按照 Makefile 的方式重新编译单个文件,

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

You can use the --batch flag to recompile from the command line.

To recompile all, do

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

or to recompile a single file as from a Makefile,

emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'
北风几吹夏 2024-08-05 06:39:28

这有点偏离问题,但是为了解决加载缓慢的问题,您可以使用 Emacs 23 中新的守护进程功能。

“如果您有很多支持包,
emacs 启动可能有点慢。
然而,emacs 23 带来了 emacs
--daemon,它使您能够在后台启动 emacs(例如
当您登录时)。 您可以立即
弹出新的 emacs 窗口(框架)
emacs 客户端。 当然,你可以
已经有一个 emacs '服务器'
旧版本,但能够
在后台启动它使得这个
一个更好的解决方案”

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

This is swaying a bit from the question, but to solve the problem of loading slowly you can use the new daemon feature in Emacs 23.

"If you have a lot of support packages,
emacs startup can be a bit slow.
However, emacs 23 brings emacs
--daemon, which enables you to start emacs in the background (for example
when you log in). You can instantly
pop up new emacs windows (frames) with
emacsclient. Of course, you could
already have an emacs 'server' in
older versions, but being able to
start it in the background makes this
a much nicer solution"

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

谎言月老 2024-08-05 06:39:28

我使用的命令是 Mx byte-force-recompile RET,然后它询问目录,例如,我给它 ~/.emacs.d/elpa/。 然后它会重新编译其中的所有内容,通常不需要先删除 .elc 文件或以其他方式弄乱它。

The command I use is M-x byte-force-recompile RET, it then asks the directory so, for example, I give it ~/.emacs.d/elpa/. It then recompiles everything in there, usually no need to delete .elc files first or mess with it in other ways.

稀香 2024-08-05 06:39:28

对于我使用 spacemacs 的命令是 spacemacs/recompile-elpa 。 命令byte-recompile-directory不会编译任何文件。

For my using spacemacs, the command is spacemacs/recompile-elpa. The command byte-recompile-directory does not compile any file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文