はじめての elisp (LDR の未読件数を表示)
emacs はじめました。
Lisp への関心、と言うより憧れの感情から Scheme を学び始め、Vim+Scheme の組み合わせが案外扱いづらいな、という感想から emacs に手を出したところ、後戻りできなくなってしまった、という感じです。
元来私はガチガチの Vimmer だったんですが、盛んに Vim スクリプトを書いていた頃から emacs のプログラマビリティーの高さを羨ましく思っていました。しかし、アンチ emacs のイデオロギー*1 (に加えて Lisp 嫌い) に強く支配されていて、自分を変えることが出来ずにいたのでした。
ようやく最近になって Lisp への苦手意識が払拭でき (まだマクロは読み書きできませんが)、それと連動して emacs にも抵抗が低くなった、というわけです。
さて、スクリプトですが、このように暫く手を止めて考えていると
未読記事の件数がエコーされる、というものです。
作業に集中している間は決して邪魔されない、というのが良い所かなと思います。モードラインに表示し続けるという選択肢もあると思いますが、簡単な方を選びました。
(require 'url) (defun ldr-notify-unred (user) (url-retrieve (concat "http://rpc.reader.livedoor.com/notify?user=" user) (lambda (_) (re-search-forward "^|") (princ (concat "LDR unread items: " (thing-at-point 'word)))))) (run-with-idle-timer 13 t 'ldr-notify-unred "your-livedoor-id")
"url" というモジュールを使っています。Meadow3 では標準で入っています。なお Meadow3 の場合は require も要らないみたいです。