カスタマイズバッファーでは、カスタマイズしたセッティングの‘[State]’ボタンで‘Save for Future
Sessions’を選択することにより、それを保存(save)できます。C-x C-s
(Custom-save)コマンド、またはカスタマイズバッファーのトップにある‘[Apply and
Save]’ボタンで、そのバッファー内で適用可能なすべてのセッティングが保存されます。
ファイル(通常は初期化ファイル。Emacs初期化ファイルを参照してください)にコードを書き込むことにより保存は機能します。将来のEmacsセッションは、開始時に自動的にこのファイルを読み込んで、カスタマイズを再びセットします。
初期化ファイル以外の他のファイルにカスタマイズを保存する選択もできます。これが機能するには、変数custom-fileに保存したいファイル名をセットして、そのファイルをロードするコード行を追加しなければなりません。たとえば:
(setq custom-file "~/.config/emacs-custom.el") (load custom-file)
以下のようにして、Emacsのバージョンごとに違うカスタマイズファイルを指定することさえ可能です:
(cond ((< emacs-major-version 28)
;; Emacs 27用のカスタマイズ
(setq custom-file "~/.config/custom-27.el"))
((and (= emacs-major-version 26)
(< emacs-minor-version 3))
;; バージョン26.3以前のEmacs 26用カスタマイズ
(setq custom-file "~/.config/custom-26.el"))
(t
;; Emacs バージョン28.1以降
(setq custom-file "~/.config/emacs-custom.el")))
(load custom-file)
Emacsが-qまたは--no-init-fileオプションで呼び出されたときは、カスタマイズを初期化ファイルに保存しません。なぜならそのようなセッションからカスタマイズを保存することにより、初期化ファイルに記述されていた他のすべてのカスタマイズが消されてしまうからです。
将来のセッションのために保存することを選択しなかった場合、そのカスタマイズはEmacsの終了とともに失われてしまうことに注意してください。終了時に保存されていないカスタマイズにたいするメッセージを表示させたい場合は、初期化ファイルに以下を追加してください:
(add-hook 'kill-emacs-query-functions
'custom-prompt-customize-unsaved-options)