根据这些帖子:
可以以某种方式替换文件中的requireandload语句.emacs以加速 emacs 启动。但是我不知道如何详细地做到这一点。
例如,我的 .emacs 文件中有(除其他外)以下require和load语句:
(load "auctex.el" nil t t)
(require 'alarm)
(require 'linked)
(load "nxhtml/autostart.el")
(require 'autoinsert)
(require 'recentf)
(require 'color-theme)
(load "~/.emacsaddons/emacs-color-theme-solarized/color-theme-solarized")
...
Run Code Online (Sandbox Code Playgroud)
对于alarm和linked有一个目录中的相应文件呼吁.emacsaddons,对nxhtml有一个目录,换了别人也有中没有相应的文件.emacsaddons。我没有在上面的例子中包含我的文件中的全部require或load语句.emacs,只有一些我觉得替换它们的步骤在它们autoload之间会有所不同(例如,因为有些有el文件.emacsaddons,有些没有,或者因为nxhtml是...的子目录.emacsaddons)。
用autoload功能替换所有内容以提高性能的详细步骤如何?
作为自动加载的第一步,我建议您将显式load命令转换为附加到 emacs 应加载的内容列表中的路径,如下所示:
(add-to-list 'load-path (expand-file-name "~/.emacs.d/"))
Run Code Online (Sandbox Code Playgroud)
在 的顶部.emacs,您可以调用其他依赖于加载其他文件的东西,以便找到它们。
特别是为了推迟加载文件,对于(require 'foo)中的每个文件.emacs,您应该将其替换为类似以下内容的内容:
(autoload 'name-of-foo-mode "code-for-foo.el" "Minor/Major mode for foo" t)
Run Code Online (Sandbox Code Playgroud)
您可能必须试验(也许阅读)相应文件的代码,.el
看看需要用什么名称来代替
'name-of-foo-mode. 最常见的是'foo或'foo-mode,但存在不一致的情况。
就我而言,这些声明靠近我的底部.emacs:
(autoload 'textmate-mode "textmate" "Minor mode for automatic bracket pairs" t)
(autoload 'post-mode "post" "Mode for editing e-mails" t)
(autoload 'turn-on-reftex "reftex" "Minor mode for references in TeX files" t)
(autoload 'mode-compile "mode-compile" "Compile current buffer" t)
(autoload 'markdown-mode "markdown-mode" "Major mode for Markdown files" t)
Run Code Online (Sandbox Code Playgroud)
require但在转向自动加载之前我必须声明的一些声明是:
(require 'reftex)
(require 'post)
(require 'compile)
(require 'textmate)
Run Code Online (Sandbox Code Playgroud)
因此,正如我所说,您可能需要进行一些实验或阅读代码,但最终这是值得的,因为如果您经常调用 emacs,它会为您节省一些时间。
| 归档时间: |
|
| 查看次数: |
2108 次 |
| 最近记录: |