つーさにブログ

つうさにのメモ用ブログ

Emacsのmanoj-darkテーマ

今回はGNU Emacsに標準でついているテーマであるmanoj-darkテーマのelispで気になったことを紹介します。

この記事はMarkdown記法のテストも兼ねています。

manoj-dark-theme.elで気になったこと

Emacsのetc/themes/manoj-dark-theme.elを見てみると、

 '(mode-line ((t (:background "grey75" :foreground "Blue"
                  :box '(:line-width -1 :style released-button)
                  :height 0.9))))

となっているけれど、これは

 '(mode-line ((t (:background "grey75" :foreground "Blue"
                  :box t
                  :height 0.9))))

と同じで意味であるので、どうして下のように書かなかったのかと気になりました。manoj-dark-theme.elには他にも:boxについて上のようにquoteされたものを値としていて、tと書けばよいものがいくつか存在します。

以下にmode-linefaceについてquoteしない値にカスタマイズするelispを書いてみました。manoj-darkテーマをロードした後、下を評価してみるとそれは全然違うことがわかると思います。

(custom-theme-set-faces
 'manoj-dark
 '(mode-line ((t (:background "grey75" :foreground "Blue"
                  :box (:line-width -1 :style released-button)
                  :height 0.9)))))

一応Emacs超初心者向け

  1. M-x load-themeでmanoj-darkと入力してリターンを押す。するとテーマが読み込まれて、有効化されます。暗い感じのテーマですね。
  2. 次に、C-x bを押して、*scratch*と入力してリターンを押す。これで表示するバッファを*scratch*バッファに切り替えます。
  3. 次に、上のカスタマイズ用elispをコピーした後*scratch*バッファにペーストする。あなたが本当のEmacs初心者なら注意してほしいのですが、Emacsにおけるペーストは、あなたが意図するキーバインドではない可能性があります。確実にペーストするにはメニューバーのEdit>Pasteをクリックしましょう。ちなみにEmacsにおける標準のペーストのキーバインドC-yです。ペーストをCtrl+Vだと思って押しても、それではペーストできないということです。
  4. カーソルを最後のカッコの後ろに置いてC-jを押す。これでelispが評価されます。

ちなみに評価とはevalのことで、日本人lisperは評価することをエバると言ったり言わなかったりします。

終わり

quoteしない方を評価したら別物すぎてびっくりしました。 というかこれは標準のmode-linefaceの:boxの値ですね。

tではなくquoteしたものを置いているのは、標準はこうだったんだよ〜という意図を見せるためなんでしょうか?最初、ミスして書いてしまっているのかと思いました。

ちなみに私はmanoj-darkテーマがマウスカーソルの色を変えるのが気に入らないので、manoj-darkテーマを使っていません。