モダンなEmacsを求めて (3) init-loaderで設定ファイルを分割する
今回のモダンなEmacsを求めては設定ファイルの分割管理について。
init-loader.el
を使うと、~/.emacs.d/inits
以下で分割した設定ファイルを管理できる。
ファイル名ベースで読み込む順番や、環境依存の設定ができるので、モダンなEmacsにはかかせないパッケージです。
前回の設定に追記します。
package.el
の初期化が終わった後、package.el
の機能を使いinit-loader
をインストールします。
(when (>= emacs-major-version 24)
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
(unless (package-installed-p 'init-loader)
(package-refresh-contents)
(package-install 'init-loader))
(require 'init-loader)
(init-loader-load)
)
init-loaderで読み込む順番
init-loader
では、先頭2桁の文字の順に読み込まれる。
なので、効率よく管理するためには、先頭二桁をどのような役割に振るかが重要。 とりあえずこのような感じで設定しようと思う。
番号 | 説明 |
---|---|
00 | package.el等によるパッケージの導入を書く。パッケージを導入するために使う、require したり設定するのは別ファイルに書く。 |
01〜19 | Emacs本体に元から備わっている機能に対する設定。 |
20〜98 | Emacsの拡張機能に対する設定。このなかでどう割り当てるかは別途考える。 |
99 | キーバインドの設定。パッケージで導入した拡張機能に対してキーを割り当てることもあるので、すべてのEmacsの拡張機能が読み込まれた後に実行する。 |
また、init-loader
による管理を徹底するため、~/.emacs.d/init.el
にはinit-loader
を読み込むための最低限の設定以外、書かない方針でいこうと思います。
くふう: インストールされていない場合のみ、パッケージのリストを更新する
package-refresh-contents
はパッケージのリストをウェブから取得する。
Download the ELPA archive description if needed.
This informs Emacs about the latest versions of all packages, and
makes them available for download.
package-refresh-contents
を毎回呼ぶと起動に時間がかかるので、
package-installed-p
でinit-loader
がインストールされているか調べ、
インストールされていない場合のみpackage-refresh-contents
を呼び、init-loader
を呼ぶようにした。