11

随着我向我的 emacs 的 init.el 添加越来越多的插件和配置,它的启动变得越来越慢。有没有办法避免这种情况?

4

2 回答 2

19

你的.emacsorinit.el不应该有很多requireorload命令,它应该主要有autoload. 该autoload函数告诉 Emacs “如果你需要这个函数,加载那个文件”。这样,只有在您实际使用该功能时才加载文件。您只需要require(或很少load)在两种情况下:

  • 如果有需要立即生效的定制(例如(require 'cl),颜色主题);
  • 如果您正在加载的是一个小文件,其中包含autoloads一个包的和其他启动定义(例如(require 'tex-site).

如果您还没有这样做,那么调用autoload特定于模式的自定义之类的东西可以显着缩短您的启动时间,因为 Emacs 将不得不加载更少的文件。

此外,确保您的文件是字节编译的;它们的加载速度会更快(更少的 CPU 时间)。调用M-x emacs-lisp-byte-compile每个.el文件,或者M-x byte-recompile-directory(这些命令在 Emacs-Lisp 菜单中)。

最后,请注意加载时间并不重要,因为您应该在每个会话最多启动一次 Emacs。登录时自动启动 Emacs,无论是使用窗口还是在后台使用--daemon选项。然后,要编辑文件,请运行emacsclient. 如果你不想在登录时启动它,你也可以告诉emacsclient它是否启动 Emacs 。

于 2011-04-15T21:23:54.330 回答
2

您可以将其编译为 .elc 文件(Mx 字节编译文件)

于 2011-04-15T21:22:25.947 回答