EmacsのCustomizeを使いこなす
Emacsの設定を変更するとき、どんな風に行ないますか? 方法は何通りかあるかと思いますが、もっともエレガントなのは customize
を使う方法でしょう。今回は、 customize
で覚えておくべき機能を紹介します。
最初に、Customizieを簡単に説明しておきます。俺は設定ファイル(~/.emacs.d/init.elや~/.emacs)で設定する派だ!というかたもおられると思いますので。
Customizeとは
Customizeとは、設定ファイルを直接編集する代りに、設定ダイアログのような役割をもったバッファが開きますので、そこで設定を変更します。変更内容は、Emacsの設定ファイル(init.elや.emacs)へ書き込まれます。(別ファイルにすることも可能)
Emacs本体の設定は当然のこと、追加したパッケージも普通はCustomizeできるように作られています。(作者次第ではありますが)
設定ファイルの直編集と比べて customize
のメリットとしては次のようなところでしょう。
- 設定ファイルの書き間違いのようなことは減る
- 設定項目にどんな選択肢があるのかわかる
- 設定項目の内容が説明されている
- 「ここをカスタマイズして!」というパッケージ製作者の意図がわかる(ソースやドキュメントを読まなくてもある程度わかる)
Customizeに慣れてしまうとネット検索する前にEmacs内で自己解決できる頻度が高くなった気がします。
簡単な使いかた
Windowsの設定ダイアログのように使いたければ、 M-x customize-group
から対象のパッケージを選ぶと、関連する設定項目の一覧が表示されます。あまり見やすいものではないのが残念ですね。
僕はいつも M-x customize-option
で、補完機能を使いながら、ピンポイントでほしい項目を探しています。
customize
の特徴としては、Windowsの設定ダイアログなどにはない、 状態 という考えがあります。設定項目には次の5通りの状態が存在します。
初期状態(STANDARD)
いわゆるデフォルト値
保存済(SAVED and set)
設定ファイルに変更内容が書き込まれている
一時的(SET for current session only)
一時的に変更されているので、Emacsを再起動すると元に戻る
外部で変更(CHANGED outside Customize)
カスタマイズ機能を使わずに変更されている
編集済(EDITED)
編集途中でどこにも反映されていない
Customizeがお手軽でいいなと思うのは、設定を変更したあと、普通にファイル保存のショートカット( C-x C-s
)で、「保存済」にできるところです。
C-c C-c
を実行すると「一時的」に反映されます。
Emacsに慣れている人なら、よくあるショートカット体系なので、すぐに慣れると思います。
コマンドは種類によって、 customize-face
や customize-option
がありますし、 customize-apropos
でパターン検索することもできます。
Stateボタンを押下することで項目ごとに状態を変更できます。
Save For Future Sessions
「保存済」になるErase Customization
「初期状態」に戻って設定ファイルも書きかわるRevert This Session's Customization
「一時的」な状態から「保存済」へ戻る
便利なコマンド
さらに覚えておくと便利なコマンドを紹介しておきます。
野良設定を探しだす
customize
を使わずに設定を変更している項目は、 M-x customize-rogue
で一覧表示できます。
init.el等の設定ファイルで直接変更している項目のなかで、 customize
に対応しているものがこれでわかるので、 customize
へ移行する場合に参考になります。ただ、自分で変更していないのに、変更したことになっている項目があるのが微妙ですが。
現在のカスタマイズ状態を確認する
M-x customize-saved
を実行すると、「保存済」な項目を一覧で表示できます。
現在の一時的なカスタマイズ状態を確認する
M-x customize-unsaved
を実行すると、「一時的」な項目を一覧で表示できます。
設定ファイルがスッキリ
customize
を使うようになってからは、init.elが以前よりもすっきりしました。
設定ファイルで変更する方法だと、単にコードをハッキングしているだけなのか、製作者の意図に従っているのかあいまいだったのが、 明確になるのもいい感じです。