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 と全角空白については最近はこれを使わせていただいております.
設定すれば改行位置に文字を表示させることもできるようですね.







役に立たないので戻る