init-loaderを使えば、Emacsの設定ファイルを簡単に分割できる。
しかも特定の環境でのみ読み込ませる設定ファイルなんてのも簡単に作ることができ、設定ファイルを一元管理して複数の環境で使う場合などにとても便利。
init-loaderには
- Meadow (meadow-*.el)
- Carbon Emacs (carbon-emacs-*.el)
- Cocoa Emacs (cocoa-emacs-*.el)
- no-window環境 (nw-*.el)
用の設定があらかじめ用意されているが、今回これらにgnupack用の設定を付け加えてみる。
init-loader.el
;; gnupack-emacs-*.el という名前のファイルのみ、gnupack Emacsで読み込む
(defcustom init-loader-gnupack-emacs-regexp "^gnupack-emacs-"
"MinGWで起動するEmacs(gnupack)で読み込まれる設定ファイルにマッチする正規表現"
:group 'init-loader
:type 'regexp)
;;; Code
(defun* init-loader-load (&optional (init-dir init-loader-directory))
(let ((init-dir (init-loader-follow-symlink init-dir)))
(assert (and (stringp init-dir) (file-directory-p init-dir)))
(init-loader-re-load init-loader-default-regexp init-dir t)
;; ~ 略 ~
;;---- ここから ----
(and (string-match "mingw" system-configuration)
(init-loader-re-load init-loader-gnupack-emacs-regexp init-dir))
;;--- ここまで ----
(when init-loader-show-log-after-init
(add-hook 'after-init-hook 'init-loader-show-log))))
これでinit-loaderで読み込ませるディレクトリ(デフォルトでは .emacs.d/inits)にgnupack-emacs-*.elという設定を配置すれば、gnupack Emacs起動時にのみ読み込まれることになる。