Emacsでドヤが夫を簡易的なアニメーションでみたい

を見て、ふと思いついて、適当にでっちあげ。AA はそのまま流用させて頂きました。
あんまりテストしてないけど、以下の式評価して、M-x doya-show で流れる、はず。

(defun doya-show ()
  (interactive)
  (let ((doya-faces '("                      ___  まぁ確かに・・・
                    /⌒  '' ⌒\
                  /( ● ) (● )\             Emacsを立ち上げたのはお前
                /::⌒  ,    ゝ⌒::\    (⌒)
                |       `ー=-'     |    ノ~.レ-r┐、
                \               /   ノ  |.| |
.         ,  ⌒ ´  \      ̄   ´ !〈 ̄`- Lλ_レレ
        /    __       ヽ        |   ̄`ー‐-‐‐´
.      〃 ,. --ミ        ヽ     i   |/ハ /
      ji/     ̄`          ヽ  |"

                      "                      ___
                    /ノ '' ⌒\
                  /( ● ) (● )\でも、この画面まで来れたのは俺のおかげ
                /::⌒   ,   ゝ⌒::\
                |       ト==ィ'     |
    _,rーく´\  \,--、    `ー'    /
. ,-く ヽ.\ ヽ Y´  /   ー    ´ !`ー-、
  {  -!  l _」_ノ‐′/ ヽ            |    ∧
. ヽ  ゙ー'´ ヽ    /     ヽ        i  |/ハ
  `ゝ、    ノ  ノ         ヽ     |"


                      "                      ___
                    /ヽ ''ノ\
                  /( ● ) (● )\
                /::⌒    、_ゝ⌒::\   (⌒)          だろっ?
                |         -       |   ノ ~.レ-r┐、
                \               /  ノ_  |.| |
.         ,  ⌒ ´  \      ̄   ´ !〈 ̄  `-Lλ_レレ
        /    __       ヽ        |   ̄`ー‐-‐‐´
.      〃 ,. --ミ        ヽ     i    |/ハ  /
      ji/     ̄`          ヽ  |"))
        ol)
    (dolist (i doya-faces)
      (setq ol (make-overlay (window-start) (point-max)))
      ;; (setq i (propertize i 'face 'highlight))
      (unwind-protect
          (progn (overlay-put ol 'after-string i)
                 (overlay-put ol 'invisible t)
                 (redisplay)
                 (sleep-for 2)
                 (discard-input))
        (delete-overlay ol)))))

画面の真ん中に来るように調整できたら見栄えいいかもとかおもったけど、実装してない。
メッセージ引数に指定して変えれたら面白いかもとか一瞬思ったけど、実装してない。
Emacs 起動直後のバッファで表示できるようにするには、タイマーを起動時に走らせて、after-init-time が nil でなくなったらこいつを表示してタイマー削除すればうまくいくんじゃねとか妄想したけど試してない。
# initial-buffer-choice の値もみた方がいいのかなあ。よくわからん。

更新時刻

  • 2010/07/22/2:37