2011-04-15 36 views
10

當我爲emacs的init.el添加越來越多的插件和配置時,它的啓動速度越來越慢。有什麼辦法可以避免這種情況?如何使我的定製emacs加載速度更快?

+2

可能的重複[如何使Emacs啓動速度更快?](http://stackoverflow.com/questions/778716/how-可以製作emacs-start-up-faster) – 2011-04-16 14:31:53

回答

19

.emacs或​​不應該有很多requireload命令,它應該大多有autoloadautoload函數告訴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-L isp菜單)。

最後,請注意加載時間並不重要,因爲您應該是starting Emacs at most once per session。在登錄時自動啓動Emacs,無論是在窗口中還是在後臺使用​​選項。然後,編輯文件,運行emacsclient。您也可以tell emacsclient to start Emacs if it's not running yet如果您不想在登錄時啓動它。

+1

對於守護進程模式和編輯器顏色有問題的人來說,這非常有用:http://www.emacswiki.org/emacs/SettingFrameColorsForEmacsClient – dermatthias 2011-04-16 21:28:35

+0

如果您不喜歡確認每個目錄和/或文件:'(byte -recompile-directory「〜/ where -i-put-my-packages /」nil nil)'或者將最後的nil值改爲non-nil以強制重新編譯。 '(描述函數'字節重新編譯目錄)'岩石:) – clintm 2011-11-24 08:08:39

2

可以compile it作爲.elc文件(M-X字節編譯文件)

+0

從[48.4 Emacs初始化文件](http://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html# Init-File):*「建議不要使用字節編譯你的init文件......如果你的init文件定義了很多函數,可以考慮將它們移動到一個單獨的(字節編譯的)文件中,並將其加載到init文件中。」* – DavidRR 2015-07-15 15:47:17

+0

...也就是說,有一些機制可以自動維護Emacs初始化文件的字節編譯版本。例如,請參閱[這裏](http://stackoverflow.com/a/779145/1497596)和[這裏](http://stackoverflow.com/a/780735/1497596)。 – DavidRR 2015-07-15 16:08:41

相關問題