アーティストモードでメリークリスマス
この日記はEmacs Advent calender の21日目 です。19日はmyuheさんの「連続操作を素敵にするsmartrep.el作った」でした。前日はid:ken_mさんのEmacs で Excel のオートフィルのようなことをするでした。明日はid:khikerさんです。
メリークリスマスといってもartist-modeの話。四角や丸を文字で書くという picture-mode の上位版なのだが、その中でも特に試す価値があるのが、スプレー文字のspray-can 。( M-x artist-mode してからC-c C-a S)
いわゆるドロー系ソフトの感覚で右ドラッグで線を引き、 shift+右クリックドラッグでスプレーのサイズを変更できる。
これで書道アーティスト気分を味わえる。ただしスプレーなので重ね書きしているのが書道としては反則だが・・・
出来ることなら、でかいディスプレーに黒背景 Emacs と小さいフォント(shift+右クリックで変更)を用意して書くと、次のようなホワイトクリスマス気分を味わう事もできる。
ちなみにここでは、こだわりのスプレー缶を使用している。
(setq artist-spray-chars '(?\s ?. ?, ?: ?; ?- ?~ ?_ ?+ ?o ?i ?C ?O ?Y ?D ?Q ?X ?W ?% ?* ?# ?*))
サンタの服を赤色に
例えばスプレー缶をもう一系列用意して、
(setq artist-spray-chars '(?\s ?. ?' ?c ?r ?e ?d ?l ?= ?A ?H ?R ?E ?@))
(font-lock-add-keywords 'picture-mode
'(("['credl=AHRE@]" 0 (emacs-wiki-font-tag-face "#ff2222" 0) append)))
などとして、赤色フェースを作って、サンタの服をもう一度スプレーしなおして、色付けしてみる。と思ったけど、先ほど作ったドットをまず消さなければならない。
消しスプレー
artist-spray-chars は最初がスペースで次がドットで、そのあと文字が続く。徐々に濃くなるのがポイント。これを逆に並べれば、色を消すためのスプレーが出来る。問題なのは、artist-spray-chars に無い文字があった場合、artist-spray-new-char で上書きするので、これを設定しておかなければならない。
(setq artist-spray-chars (reverse artist-spray-chars))
(setq artist-spray-new-char ?\s)