Wanderlust の flag フォルダ

内部フォルダ 'flag を GTD の一環に活かせないか、という話。Inbox にメールを置いたままで、そのメールに対する action をはっきりさせてみる。フォルダモードで、それぞれの action に属するメールの数がわかるのも便利そう。もちろん、その action を完了したらフラグを消し、メールを適切なフォルダへ移す/捨てることが前提。

$ でつけられる important フラグはトグル式になっていて、再度 $ でフラグが消える。一方、自分で定義できるグローバルフラグは F でつけられるが、消すときは C-u F と prefix をつければよい。元々ある important に加えて、to-reply と waiting-for を定義した。他に要調査のようなものもいるかな。まあ、必要に応じて。

flag フォルダを常に見張っておくように

(setq wl-biff-check-folder-list '("%inbox" "%Junk" "'flag/important" "'flag/to-reply" "'flag/waiting-for"))

と設定した。変数 wl-summary-flag-alist も自分好みに。

さらに、Wanderlust ML のこのスレッドを参考に、フラグ入力時の補完が効くようにした。しかも、前からほしいと思っていた、flag フォルダから元記事に飛ぶ関数も一緒に見つかった。この関数を基に、ちょっと手を入れてこんなふうに。

(defun wl-summary-jump-to-referer-message ()
  (interactive)
  (when (wl-summary-message-number)
    (if (equal (elmo-folder-type-internal wl-summary-buffer-elmo-folder)
	       'flag)
	(progn
	  (let* ((referer (elmo-flag-folder-referrer
			   wl-summary-buffer-elmo-folder
			   (wl-summary-message-number)))
		 (folder (if (> (length referer) 1)
			     (completing-read
			      (format "Jump to (%s): " (car (car referer)))
			      referer
			      nil t nil nil (car (car referer)))
			   (car (car referer)))))
	    (wl-summary-goto-folder-subr folder 'no-sync nil nil t)
	    (wl-summary-jump-to-msg (cdr (assoc folder referer)))))
      (when (equal (elmo-folder-type wl-summary-last-visited-folder)
		   'internal)
	(wl-summary-goto-last-visited-folder)))))
(define-key wl-summary-mode-map "=" 'wl-summary-jump-to-referer-message)

`=' で flag フォルダと元記事のあるフォルダを行き来する。本当はフォルダどうしではなく、記事どうしを行き来できるようにするつもりだったけど、Wanderlust のコードを読む時間がとれないのであきらめる。

Emacs を使っているかぎり、Mail.app 一本にはしぼれないなあ。