]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.el
notmuch.el: Add (n)ext and (p)revious bindings to notmuch-show mode.
[notmuch] / notmuch.el
index 54f4a5812e997a2db270164af380f8127c5bc955..7fe5e9783cc0fdab735c6ea5f102a5b1068961e3 100644 (file)
 
 (defvar notmuch-show-mode-map
   (let ((map (make-sparse-keymap)))
+    (define-key map "n" 'notmuch-show-next-message)
+    (define-key map "p" 'notmuch-show-previous-message)
     (define-key map "q" 'kill-this-buffer)
     (define-key map "x" 'kill-this-buffer)
     map)
   "Keymap for \"notmuch show\" buffers.")
 (fset 'notmuch-show-mode-map notmuch-show-mode-map)
 
+(defvar notmuch-show-message-begin-regexp "%message{")
+
+(defun notmuch-show-next-message ()
+  "Advance point to the beginning of the next message in the buffer."
+  (interactive)
+  ; First, ensure we get off the current message marker
+  (if (not (eobp))
+      (forward-char))
+  (if (not (re-search-forward notmuch-show-message-begin-regexp nil t))
+      (goto-char (point-max)))
+  (beginning-of-line))
+
+(defun notmuch-show-previous-message ()
+  "Advance point to the beginning of the previous message in the buffer."
+  (interactive)
+  ; First, ensure we get off the current message marker
+  (if (not (eobp))
+      (forward-char))
+  (if (not (re-search-backward notmuch-show-message-begin-regexp nil t))
+      (progn
+       (goto-char (point-min))
+       (beginning-of-line))))
+
 ;;;###autoload
 (defun notmuch-show-mode ()
   "Major mode for handling the output of \"notmuch show\""