default color
emacs における色の名前のサンプルファイルはこちら(260K).
最近の linux のディストリビューションでは付属の .emacs にある程度の記述があるの
であまり気にしなくてもいいかもしれないですが、基本的にデフォルトは白地に黒です。
白地に黒ですよ?
やってられません。で、さっさと変え
ます。例えば、背景を黒、文字をグレー、カーソルを青とかにするに
は、以下のようにします。
(setq default-frame-alist
(append
'((foreground-color . "gray") ; 前景色
(background-color . "black") ; 背景色
(cursor-color . "blue") ; カーソル色
(width . 114) ; フレーム幅(文字数)
(height . 44) ; フレーム高(文字数)
(top . 50) ; フレームの Y 位置(ピクセル数)
(left . 10) ; フレームの X 位置(ピクセル数)
)
default-frame-alist))
font-lock
様々なメジャーモードでバリバリに色をつけるには font-lock なる機能を用います. 何も考えず
(global-font-lock-mode 1)
と書けばよいでしょう。
font-lock にも種類があって、どういうタイミングで色をつけるかを指定することができ
ます。もし emacs21 な方であれば
(setq font-lock-support-mode 'jit-lock-mode)
とすることをお勧めします。文字通り、just in time な色付ですので、fast-lock のあ
のファイルを開くときの妙に時間がかかる間がなくなります。でも emacs20 なら
fast-lock か lazy-lock でしょう。
で、font-lock では構文をみてマッチするキーワードを強調表示する
ことができます。利点としては、
- 見易くなるので理解の助けになる
- 色がつくかどうかでスペルミスが判断できる
- 楽しい
といったところでしょうか。逆に欠点といえば、ファイルの大きさにもよりますが開くと
きに時間がかかる、ということです。特に、貧弱な正規表現を書くと劇的に遅くなったり
するのです。
ちなみに、自分が emacs を使用していて一番不満だったのが、タブと改行と全角空白を
表示できないということでした。これは font-lock を利用すれば解決できるのです。
(defface my-face-b-1 '((t (:background "gray"))) nil)
(defface my-face-b-2 '((t (:background "gray26"))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode ())
(font-lock-add-keywords
major-mode
'(("\t" 0 my-face-b-2 append)
(" " 0 my-face-b-1 append)
("[ \t]+$" 0 my-face-u-1 append)
)))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
これは、バッファの中にある「タブ」と「全角空白」と「改行の前にあるスペースやタブ」
を強調表示するものです。font-lock-mode-hook に書いてもダメだったので advice にし
てますが、ほかにもいい書き方あるかもしれないです。
補足しておきますと、これは font-lock が有効になっている必要があります。
blank-mode.el というものもあるようですので、font-lock が有効でない場合でもこうい
う white-space を色づけしたいと思われたなら試してみるのもよいかと。
でも自分の場合、たいていは font-lock が on だし、何より上記の数行で済むなら何KB
もある追加 elisp をロードしなくてもいっかな、と思ってしまうのでした。
jaspace
と, 今まで思ってましたが, こちらの
satomi さん
が jaspace.el というナイスな minor-mode を公開されています.
emacs21 以上である必要がありますが, そうであれば
こういう screenshot
にすることができます.
tab と全角空白については最近はこれを使わせていただいております.
設定すれば改行位置に文字を表示させることもできるようですね.
役に立たないので戻る