パフォーマンスを向上させるには、.emacsファイルのrequireステートメントを自動ロードに置き換えます。

パフォーマンスを向上させるには、.emacsファイルのrequireステートメントを自動ロードに置き換えます。

この投稿によると:

何らかの方法でファイルのドアを変更すると、requireemacsの起動速度を上げることができます。しかし、これを詳しく実行する方法がわかりません。load.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")
...

alarmおよびについては、linkedというディレクトリに対応するファイルがあり.emacsaddonsnxhtmlにはディレクトリがあり、他のディレクトリには対応するファイルはありません.emacsaddons。上記の例では、ファイルにはすべてのrequireORloadステートメントが含まれておらず、ORステートメントを置き換える手順が異なると.emacs考えた部分のみが含まれていました(例:一部はファイルがあり、一部はファイルがないか、または.. .サブディレクトリのため) )。 )。autoloadel.emacsaddonsnxhtml.emacsaddons

パフォーマンスを向上させるためにすべてを機能に置き換える詳細なautoload手順は何ですか?

ベストアンサー1

load自動ロードの最初のステップとして、明示的なコマンドを次のようにemacsがロードする必要があるエントリのリストに追加されたパスに変換することをお勧めします。

(add-to-list 'load-path (expand-file-name "~/.emacs.d/"))

さらに、.emacs別のファイルを見つけるために他のファイルのロードに依存する他の項目を呼び出すこともできます。

特にファイルのロードを延期するには、(require 'foo)各ファイルに対して.emacs次のように置き換える必要があります。

(autoload 'name-of-foo-mode "code-for-foo.el" "Minor/Major mode for foo" t)

.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)

requireただし、自動ロードに切り替える前にすべきいくつかの宣言は次のとおりです。

(require 'reftex)
(require 'post)
(require 'compile)
(require 'textmate)

したがって、私が言ったように、いくつかの実験やコードを読む必要があるかもしれませんが、結局、emacsを頻繁に呼び出すと時間を節約できるので、それは価値があります。

おすすめ記事