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-line
faceについて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超初心者向け
M-x load-theme
でmanoj-darkと入力してリターンを押す。するとテーマが読み込まれて、有効化されます。暗い感じのテーマですね。- 次に、
C-x b
を押して、*scratch*と入力してリターンを押す。これで表示するバッファを*scratch*バッファに切り替えます。 - 次に、上のカスタマイズ用elispをコピーした後*scratch*バッファにペーストする。あなたが本当のEmacs初心者なら注意してほしいのですが、Emacsにおけるペーストは、あなたが意図するキーバインドではない可能性があります。確実にペーストするにはメニューバーのEdit>Pasteをクリックしましょう。ちなみにEmacsにおける標準のペーストのキーバインドは
C-y
です。ペーストをCtrl+Vだと思って押しても、それではペーストできないということです。 - カーソルを最後のカッコの後ろに置いて
C-j
を押す。これでelispが評価されます。
ちなみに評価とはevalのことで、日本人lisperは評価することをエバると言ったり言わなかったりします。
終わり
quoteしない方を評価したら別物すぎてびっくりしました。 というかこれは標準のmode-line
faceの:box
の値ですね。
t
ではなくquoteしたものを置いているのは、標準はこうだったんだよ〜という意図を見せるためなんでしょうか?最初、ミスして書いてしまっているのかと思いました。
ちなみに私はmanoj-darkテーマがマウスカーソルの色を変えるのが気に入らないので、manoj-darkテーマを使っていません。