试着使用https://github.com/jwiegley/use-package宏来定义你的软件包加载和自定义。它为你处理了软件包的延迟加载,使得即使在配置了大量软件包的情况下,启动时间也相对容易达到良好的水平。我的.emacs文件中有近100个引用的软件包,但在Linux上我的启动时间不到2秒,在Mac上为2.2秒。
(let ((benchmark-init.el "~/.emacs.d/el-get/benchmark-init/benchmark-init.el"))
(when (file-exists-p benchmark-init.el)
(load benchmark-init.el)))
当你启动emacs后,运行以下命令:
M-x benchmark-init/show-durations-tree
在我的电脑上,问题出现在tramp-loaddefs花费了127秒的时间。
我通过添加以下代码来解决这个问题:
127.0.0.1 host.does.not.exist
我将/etc/hosts文件添加到了我的启动程序中,这使得我的启动速度更快。
更多信息请参见:https://github.com/emacs-helm/helm/issues/1045
另外一个可能对你有帮助的东西是:https://www.emacswiki.org/emacs/ProfileDotEmacs
其他人没有提到的一件事是,将您使用的elisp库作为dumped Emacs的一部分包含在内,以将库加载时间从Emacs启动移动到Emacs构建。这并不是一件容易的事情,但如果您在.emacs
中加载了几个库,它可以为您赢得几秒钟的启动时间。
这并不回答问题,但有点相关
我不知道如何使它快速启动,但是我可以建议几件事情:
对于大多数在命令行上执行的操作,您都可以在Emacs中执行:
或者,您可以像这样运行emacs:
emacs file.ext &
我正在尝试解决同样的问题,当我在这里看到这个问题时。我只想补充一点,对我来说问题不是因为emacs lisp包的加载时间,而是主机没有完全解析主机名。
要检查包加载时间,请执行以下操作
M-x emacs-init-time
对我而言,加载时间极高,但实际上只有0.3秒。在正确更改了我的主机名后,问题得到了解决。
要配置完全解析的主机名,请编辑/etc/hostname和/etc/hosts文件,内容如下:
127.0.0.1 localhost localhost.localdomain
192.168.0.2 hostname hostname.domain
我需要检查我的自定义设置,但是有一个叫做gnuserve或emacsclient的软件包。它经常迁移,所以你需要在谷歌上搜索。
它在后台运行一个emacs会话。任何进一步的emacs会话本质上都只是该会话的新框架。其中一个优点是后续会话的快速启动时间。