2014年9月10日水曜日

Emacsで色(face)をカスタマイズする方法

概要

Emacsの文字色や背景色はfaceという仕組み(というか名称)で管理されています
ユーザはfaceをカスタマイズすることで見た目を変更ことができます
faceのカスタム方法はいろいろありますが、今回はEmacsに付属されている customize-face という機能を使って変更する方法を紹介します

環境準備

  • Emacs
    24.3.1

カスタマイズ

customize-face 起動

まずはcustomize-faceを起動します
ミニバッファで「customize-face」と入力すれば起動することができます
M-x customize-face

Customize face (defaultall faces’):` と聞かれるので Enter を入力します
face はカテゴリごとに管理されておりカスタマイズしたいカテゴリに絞ってからカスタムすることも可能です
とりあえず今回はデフォルトの all を使ってカスタマイズしてみます
起動すると以下のように表示されるはずです
customize-faces-start.png

目的のfaceを見つける

今回は試しにscratchバッファのコメント部分の文字色を変更してみたいと思います
scratch.png

faceでカスタムする際に一番大変な作業は、カスタムしようとしている場所が何というfaceなのかを知ることです
今回変更しようとしているfaceはfont-lock-comment-faceになります
これをどうやって知ったかというとdescribe-faceという関数がありこれを変更したい文字上で実行すると調べることができます

faceの名前がわかったのでcustomize-faceに戻って早速カスタムしてみます
customize-faceをallで開いたので大量のfaceがあると思います
EmacsなのでCtrl+sで検索してもいいですし、一番上の黄色部分が検索窓の役割にもなっているのでここにkeywordを入力してもOKです
検索するときにはfont-lock-comment-faceと入力してもマッチしません
customize-face上のface名は「font lock comment face」とハイフンなしでで検索することで目的のfaceに辿りつくことができます
font-lock-comment-face.png

scratchの文字色をカスタムしてみる

「Show」の部分をEnterするとfaceの設定項目が出てきます
元々の色はどうやら「yellow」が定義されているようです
yellow の部分にカーソルを合わせてEnterを入力するとミニバッファに色を指定するように言われます
Emacsで提供しているカラーテーマ以外は指定できません
Emacsが提供するカラーの一覧はlist-color-displayで表示することが可能です
ここでは試しに「red」と入力しましょう
change-red.png

カスタム情報を保存する

変更が完了すると状態が編集中になります
カスタム情報を保存する方法はEmacsの王道の「Ctrl+x, s」でも問題ありません
customize-faceの機能を使って保存する場合は「State」をEnterするとミニバッファに選択項目が出てくるので「1 = Save for Future Sessions」を選択すればOKです
するとカスタム情報が.emacsに書き込まれます
この状態まで来たらscratchバッファを再度見てみると黄色だったコメント部分が赤色になっていることがわかります
保存した際に.emacsにカスタム情報が記録されるためEmacsを再起動しても文字が赤になっていると思います

今回の紹介は以上です
-nw オプションでemacsを起動していると変更できないfaceもあるようなので、その辺りは実際に変更しながら試していくしかなさそうです

Enjoy Emacs life !

0 件のコメント:

コメントを投稿