]> git.cworth.org Git - notmuch-wiki/blobdiff - emacstips.mdwn
emacs tip: replace tabs with spaces in subject and header
[notmuch-wiki] / emacstips.mdwn
index 8cb9280b4f249c95831d1318eae0b0a898617a63..2cc8aac748e2851ae364743567518cabacacfa49 100644 (file)
@@ -92,6 +92,17 @@ mentioned as script arguments. (Note: The script expects that you have
         done
         emacsclient -a '' -c -e "(progn (compose-mail) $attach_cmds)"
 
+## Issues with Emacs 24
+
+If notmuch-show-mode behaves badly for you in emacs 24.x try adding one of
+
+       (setq gnus-inhibit-images nil)
+
+or
+
+       (require 'gnus-art)
+
+to your .emacs file.
 
 -----
 
@@ -528,3 +539,70 @@ more information (some of these have "extensive documentation"):
 The last two do the same thing.
 
 See also the **Usage:** section in `gnus-alias.el`.
+
+## Resending (or bouncing) messages
+
+Add the following to your `.emacs` to be able to resend the current message in
+show mode.
+
+        (define-key notmuch-show-mode-map "b"
+          (lambda (&optional address)
+            "Bounce the current message."
+            (interactive "sBounce To: ")
+            (notmuch-show-view-raw-message)
+            (message-resend address)))
+
+## `notmuch-hello` refresh status message
+
+Add the following to your `.emacs` to get a status message about the change in
+the number of messages in the mail store when refreshing the `notmuch-hello`
+buffer.
+
+        (defvar notmuch-hello-refresh-count 0)
+
+        (defun notmuch-hello-refresh-status-message ()
+          (unless no-display
+            (let* ((new-count
+                    (string-to-number
+                     (car (process-lines notmuch-command "count"))))
+                   (diff-count (- new-count notmuch-hello-refresh-count)))
+              (cond
+               ((= notmuch-hello-refresh-count 0)
+                (message "You have %s messages."
+                         (notmuch-hello-nice-number new-count)))
+               ((> diff-count 0)
+                (message "You have %s more messages since last refresh."
+                         (notmuch-hello-nice-number diff-count)))
+               ((< diff-count 0)
+                (message "You have %s fewer messages since last refresh."
+                         (notmuch-hello-nice-number (- diff-count)))))
+              (setq notmuch-hello-refresh-count new-count))))
+
+        (add-hook 'notmuch-hello-refresh-hook 'notmuch-hello-refresh-status-message)
+
+## Replacing tabs with spaces in subject and header
+
+Mailman mailing list software rewrites and rewraps long message subjects in
+a way that causes TABs to appear in the middle of the subject and header
+lines. Add this to your .emacs to replace tabs with spaces in subject
+lines:
+
+       (defun notmuch-show-subject-tabs-to-spaces ()
+         "Replace tabs with spaces in subject line."
+         (goto-char (point-min))
+         (when (re-search-forward "^Subject:" nil t)
+           (while (re-search-forward "\t" (line-end-position) t)
+             (replace-match " " nil nil))))
+
+       (add-hook 'notmuch-show-markup-headers-hook 'notmuch-show-subject-tabs-to-spaces)
+
+And in header lines (this will only work with the yet to be released
+notmuch version 0.15):
+
+       (defun notmuch-show-header-tabs-to-spaces ()
+         "Replace tabs with spaces in header line."
+         (setq header-line-format
+         (notmuch-show-strip-re
+          (replace-regexp-in-string "\t" " " (notmuch-show-get-subject)))))
+
+       (add-hook 'notmuch-show-hook 'notmuch-show-header-tabs-to-spaces)