- initsplit 20160919.1118(in MELPA)
- code to split customizations into different files
概要
initsplit.el は、M-x customize等によるGUIでのカスタマイズ結果を
変数名別のファイルに分けます。
本来ならば custom-file にすべてのカスタマイズ結果が書き出されますが、
これを使うことで、特定のパッケージに関するカスタマイズ結果を
別のファイルに追い出し、見通しを良くします。
このように使います。
(load "initsplit") ;; カスタマイズ結果のファイルをバイトコンパイルする (setq custom-file "~/.emacs.d/settings.el") ;; orgとgnusのカスタマイズは別々のファイルに保存する (setq initsplit-customizations-alist '(("^gnus-" "~/.emacs.d/gnus-settings.el") ("^org-" "~/.emacs.d/org-settings.el"))) (add-hook 'after-save-hook 'initsplit-byte-compile-files t) ;; 全カスタマイズファイルを読み込む (load custom-file) (load "~/.emacs.d/gnus-settings.el") (load "~/.emacs.d/org-settings.el")
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてinitsplitを使う方は
以下のコマンドを実行します。
M-x package-install initsplit
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name initsplit
テストファイル initsplit-test.el(以下のコードと同一)
どのような動作をするのかがわかりにくいかもしれないので、
パッケージの方でテストファイルが添付してあります。
以下の変数を定義し、ファイルに分けます。
- custom-file
- mac-command-modifier
- initsplit-customizations-alist
- apple
- boy
- cat
- dog
(message "testing") (setq debug-on-error t) (add-to-list 'load-path (file-name-directory load-file-name)) (custom-set-variables '(custom-file "/tmp/settings.el") '(mac-command-modifier 'meta) '(initsplit-customizations-alist '(("\\`a" "/tmp/a-settings.el") ("\\`b" "/tmp/b-settings.el") ("\\`[ac]" "/tmp/c-settings.el") ("\\`d" "/tmp/a-settings.el"))) ) (require 'initsplit) (defgroup test nil "") (dolist (symbol '(apple boy cat dog)) (eval `(defcustom ,symbol nil "doc" :group 'test)) (set symbol t) (put symbol 'saved-value '(t))) (custom-save-all) (kill-emacs) (customize-group "test") ;; expectations: ;; a-settings.el: apple, dog ;; b-settings.el: boy ;; c-settings.el: cat
init.elを別ファイルに退避し、
initsplit-test.elをinit.elにして読み込むと、
以下のファイルが書き出されて終了します。
- /tmp/a-settings.el
- apple, dog
- /tmp/b-settings.el
- boy
- /tmp/c-settings.el
- cat
- /tmp/settings.el
- それ以外
これを見てわかるように、カスタマイズ結果をファイルに分けたら、
すべてのファイルを読み込む必要があることです。
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。