ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

Emacs の起動高速化の試み(1)

1,000 行ある init.el でも1秒ほどで起動できるようになった。 (M-x emacs-init-time 調べ)

結局のところ、いかにパッケージの読み込みを遅らせるかがキモなわけで、具体的には autoload, with-eval-after-load, after-init-hook, emacs-startup-hook, window-setup-hook あたりを使って読み込みを遅らせることになる。 実際に書くときは use-package を使うのが楽です。

migemo の読み込みを下のように書いた。 他のマイナーモードもだいたい下のようなパターンに沿っている。 use-package が評価された時点ではまだ実体は読み込まずに、autoload 化した migemo-init を起動処理の終了にフックするだけである。 起動処理が終わるとはじめてパッケージの読み込みが行われる。

(use-package migemo
  :if (executable-find "cmigemo")
  :commands (migemo-init)
  :defer t
  :init
  (add-hook 'emacs-startup-hook 'migemo-init)
  :config
  (setq migemo-command "cmigemo")
  (setq migemo-options '("-q" "--emacs"))
  (setq migemo-coding-system 'utf-8-unix))

以下参考にさせていただきました。

qiita.com

[2018/10/01 追記] ardggy.hatenablog.jp