如何使自定义的emacs加载更快?

如何使自定义的emacs加载更快?,emacs,elisp,emacs23,Emacs,Elisp,Emacs23,随着我在emacs的init.el中添加越来越多的插件和配置,它的启动速度越来越慢。有什么办法可以避免这种情况吗?你可以作为.elc文件(M-x字节编译文件)你的.emacs或init.el不应该有很多需要或加载命令,它应该大部分都有自动加载。该函数告诉Emacs“如果需要此函数,请加载该文件”。这样,只有在实际使用该函数时才会加载该文件。在两种情况下,您只需要require(或者很少load): 如果有需要立即生效的定制(例如,(require'cl),颜色主题) 如果您正在加载的是一个小文

随着我在emacs的init.el中添加越来越多的插件和配置,它的启动速度越来越慢。有什么办法可以避免这种情况吗?

你可以作为.elc文件(M-x字节编译文件)

你的
.emacs
init.el
不应该有很多
需要
加载
命令,它应该大部分都有
自动加载
。该函数告诉Emacs“如果需要此函数,请加载该文件”。这样,只有在实际使用该函数时才会加载该文件。在两种情况下,您只需要
require
(或者很少
load
):

  • 如果有需要立即生效的定制(例如,
    (require'cl)
    ,颜色主题)
  • 如果您正在加载的是一个小文件,其中包含包的
    自动加载
    和其他启动定义(例如
    (需要“tex站点)
如果您还没有这样做,那么调用
autoload
进行特定于模式的定制可以显著缩短启动时间,因为Emacs需要加载更少的文件

此外,请确保您的文件是字节编译的;它们将加载得更快一些(CPU时间更少)。在每个
.el
文件上调用
M-x emacs lisp byte compile
,或
M-x byte recompile目录
(这些命令位于emacs lisp菜单中)


最后,请注意,加载时间并不重要,因为您应该这样做。当您登录时,使用窗口或后台的
--daemon
选项自动启动Emacs。然后,要编辑文件,请运行。如果您不想在登录时启动它,您也可以这样做。

对于那些与e守护进程模式和编辑器颜色,这非常有用:如果您不喜欢确认每个目录和/或文件:
(字节重新编译目录“~/where-i-put-my-packages/“nil-nil)
,或者将最后一个nil值更改为非nil值以强制重新编译。
(描述函数“字节重新编译目录”)
rocks:)从:“字节编译你的init文件是不推荐的…如果你的init文件定义了很多函数,考虑把它们移到你在init文件中加载的一个单独的(字节编译的)文件。”……说,有建议的机制来自动维护你的Emacs初始化文件的字节编译版本。例如,请参见和。