Summary-mode での C-c C-o (今開いている任意の草稿にジャンプする) は
便利なのでよく使いますが、Draft-mode でも同じことをやりたかったので、
適当な関数を作りました。
(defun mew-draft-jump-to-next-buffer (&optional previous)
"Jump to next draft buffer if exists."
(interactive "P")
(let* ((draft-dir (file-name-as-directory mew-draft-folder))
(regex (mew-folder-regex draft-dir))
(bufs (sort (mew-buffer-list regex) 'string<))
next-list next-buf)
(if previous (setq bufs (reverse bufs)))
(setq next-list (cdr (member (buffer-name) bufs)))
(setq next-buf (if next-list (nth 0 next-list)
(nth 0 bufs)))
(if (and (get-buffer next-buf)
(not (equal next-buf (buffer-name))))
(switch-to-buffer next-buf)
(message "No such other draft buffer!"))))
(defun mew-draft-jump-to-previous-buffer ()
"Jump to previous draft buffer if exists."
(interactive)
(mew-draft-jump-to-next-buffer t))
実は今回一番悩んだのがキーバインドでした。C-c F1 で調べたところ、ほ
とんど空いていませんでした。仕方がないので、vi っぽく j と k を使う
ことにしました。
(define-key mew-draft-header-map (kbd "C-c C-j") 'mew-draft-jump-to-next-buffer)
(define-key mew-draft-header-map (kbd "C-c C-k") 'mew-draft-jump-to-previous-buffer)
(define-key mew-draft-mode-map (kbd "C-c C-j") 'mew-draft-jump-to-next-buffer)
(define-key mew-draft-mode-map (kbd "C-c C-k") 'mew-draft-jump-to-previous-buffer)