X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacstips.mdwn;h=85476256af6b982c8e9c10c11afb8f5f230b6c9e;hb=ca2e7982461b887c281a3fa7af401941a676b5d2;hp=2c360b255c0494049361a3548ad9bfe012287e65;hpb=84e881a8b8c07a114b9affc3eb79d27d966060b1;p=notmuch-wiki diff --git a/emacstips.mdwn b/emacstips.mdwn index 2c360b2..8547625 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -3,13 +3,17 @@ One of the more popular notmuch message reading clients is **notmuch.el**, an [emacs](http://www.gnu.org/software/emacs/) major mode for interacting with notmuch. It is included in the notmuch -package. This page goes over some usage tips for using notmuch with -Emacs. +package (notmuch-emacs in Debian). This page goes over some usage +tips for using notmuch with Emacs. [[!toc levels=2]] ## Setup +Have a look at the [Howto](http://notmuchmail.org/howto/) for +prerequisites. Be sure you have done the general setup using the +notmuch cli command! + To use the Notmuch emacs mode, first add the following line to your `.emacs` rc file: @@ -92,6 +96,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. ----- @@ -122,8 +137,8 @@ a file called `~/.emacs.d/my-notmuch.el`: ;; uncomment & modify if you want to use external smtp server to send mail ;; (setq smtpmail-smtp-server "smtp.server.tld" ;; message-send-mail-function 'message-smtpmail-send-it) - ;; uncomment to debug smtp sending problems - ;; (setq smtpmail-debug-info t) + ;; uncomment to debug smtp sending problems + ;; (setq smtpmail-debug-info t) Then, add to `.emacs`: @@ -528,3 +543,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)