【Emacs】init-loaderで初期設定ファイルを整理

スポンサーリンク

Emacsの初期設定ファイルに設定記述する事で便利にしていく事ができるが、いろいろ書いていくと、長くなり見通しが悪くなってくる。
そこで「init-loader」パッケージを導入する事で、設定を分割して記述する。

インストール

M-x package-install<RET>
init-loader

設定

~/.emacs.d/init.elに下記を記述する。

;;; init-loader設定
(require 'init-loader)
(setq init-loader-show-log-after-init 'error-only)
(init-loader-load "~/.emacs.d/inits")

設定ファイル読み込みルール

上記の設定で、~/.emacs.d/inits/フォルダにある下記のような二桁の数字で始まるファイルを順番に読み込む。

  • 00_util.el
  • 01_ik-cmd.el
  • 21_javascript.el
  • 99_keybinds.el

キーバインドは、各パッケージの設定と競合する場合があるので、できるだけ数字を大きくして後の方で読ませると良い。

更に、下記のようなプラットフォーム名で始まるファイルも読み込む。詳しくは参考(1)を参照。

  • windows-fonts.el
  • cocoa-emacs-frame.el
  • nw-key.el

これで、機能別に設定ファイルを分割して記述する事ができスッキリ記述できる。

オプション設定の分離設定

EmacsのOptionメニューで設定し、Save Optionで保存した情報は、デフォルトは~/.emacs.d/init.elファイルに保存される。
このオプション情報の出力先を、下記設定~/.emacs.d/inits/90_custom.elのように指定する事で~/.emacs.d/init.elは固定にし不変とする。

;;; customizeの出力先設定
(setq custom-file "~/.emacs.d/custom-file.el")
(if (file-exists-p (expand-file-name "~/.emacs.d/custom-file.el"))
    (load (expand-file-name custom-file) t nil nil))

これでOption設定情報は、~/.emacs.d/custom-file.elファイルに出力され、Emacsの起動時に読み込まれる。

最終的なinit.elファイル

参考まで、初期設定ファイル(~/.emacs.d/init.el)は下記。

;;
;; hostごとの設定があれば読み込む
;;
(setq init_host (concat "~/.emacs.d/local/init_" (system-name) ".el"))
(if (file-exists-p init_host)
    (load-file init_host))

;;
;; パッケージ管理(package.el)の設定
;;
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)

;;
;; init-loader
;;
(require 'init-loader)
(setq init-loader-show-log-after-init 'error-only)
(init-loader-load "~/.emacs.d/inits")

設定フォルダをGit管理

~/.emacs.d/ディレクトリにEmacsの設定ファイル類を集約し、このフォルダをGitリポジトリ管理する事で、Mac,Windows,Linixパソコンで共有する。要領を別記事で紹介。

補足

  • init-loaderを使う事で、設定ファイルを機能分割でき良いが、ファイル数が多くなってくるとEmacsの起動に多少時間がかかるようになる。
    EmacsにはServer機能があるので、それを活用する事でログイン時に一度だけの読み込みで済むようにも出来る。後の記事で紹介していく。
  • 数字2桁やプラットフォーム名で始まる文字以外のファイルは読み込まれないので、一時的に機能の設定を外したい時、又は、一時的に追加したい場合は、ファイル名を変更するだけで試せる。

<2017/01/25 追記>

私の使っている設定ファイル一式をGitHubに公開したのを下記記事で紹介。
【Emacs 25】初期設定ファイルをGitHubに公開

参照記事

参考

  1. GitHub – emacs-jp/init-loader
  2. nit-loader.el と package.el を導入して快適 Emacs ライフ – Qiita
  3. init-loader:init.elを分割で得られる7つの恩恵
  4. Emacs のおすすめ基本設定 | プログラマーズ雑記帳
  5. モダンなEmacsを求めて (3) init-loaderで設定ファイルを分割する – block_given?

コメント

タイトルとURLをコピーしました