X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacstips.mdwn;h=1d73550528617ef07b6e3fb00f6159ef7e2cab77;hb=2f342ba031eb9fb6f052de9b0cef22957ab58443;hp=552fe3157ddf11e4f78954f8228c778577f2b5f0;hpb=b7174eac02828bf63459d533a3e77c81d9fb563e;p=notmuch-wiki diff --git a/emacstips.mdwn b/emacstips.mdwn index 552fe31..1d73550 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -18,15 +18,26 @@ notmuch cli command! To use the Notmuch emacs mode, first add the following line to your `.emacs` rc file: - (require 'notmuch) + (autoload 'notmuch "notmuch" "notmuch mail" t) -or you can load the package via autoload: +or if you always want to load notmuch when you start emacs: - (autoload 'notmuch "notmuch" "notmuch mail" t) + (require 'notmuch) Then, either run "emacs -f notmuch", or execute the command `M-x notmuch` from within a running emacs. +### Notmuch Emacs configuration file: + +(Since Notmuch 0.18) + +After notmuch is loaded `notmuch-init-file` (typically + `~/.emacs.d/notmuch-config.el`) is checked out. If such file exists +it is loaded. Most emacs lisp based configuration not suitable via +customization can be put there instead of `~/.emacs`. As this is so new +feature rest of this emacstips file is not yet adjusted to refer this +file instead of .emacs. + ## Navigating & reading mails When first starting notmuch in emacs, you will be presented with the @@ -116,38 +127,6 @@ to your .emacs file. # Advanced tips and tweaks -## Use separate emacs lisp file for notmuch configuration - -Instead of adding notmuch configuration code to `.emacs`, there -is an option to collect those to a separate file (which is only -loaded when `notmuch` is invoked). To do this, write, for example -a file called `~/.emacs.d/my-notmuch.el`: - - ;;; my-notmuch.el -- my notmuch mail configuration - ;;; - - ;;; add here stuff required to be configured *before* - ;;; notmuch is loaded; - - ;; uncomment and modify in case some elisp files are not found in load-path - ;; (add-to-list 'load-path "~/vc/ext/notmuch/emacs") - - ;;; load notmuch - (require 'notmuch) - - ;;; add here stuff required to be configured *after* - ;;; notmuch is loaded; - - ;; 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) - -Then, add to `.emacs`: - - (autoload 'notmuch "~/.emacs.d/my-notmuch" "notmuch mail" t) - ## Initial cursor position in notmuch 0.15 hello window In notmuch version 0.15 emacs client the handling of cursor position in @@ -177,7 +156,7 @@ case you want this behaviour: The `notmuch-{search,show,tree}-tag` functions are very useful for making quick tag key bindings. The arguments to these functions have changed as notmuch has evolved but the following should work on all -versions of notmuch 0.13 and later. These functions take a list of +versions of notmuch from 0.13 on. These functions take a list of tag changes as argument. For example, an argument of (list "+spam" "-inbox) adds the tag spam and deletes the tag inbox. Note the argument must be a list even if there is only a single tag change @@ -198,6 +177,19 @@ for messages in `notmuch-tree-mode` by replacing "show" by "tree". If you want to tag a whole thread in `notmuch-tree-mode` use `notmuch-tree-tag-thread` instead of `notmuch-tree-tag`. +You may also want the function in search mode apply to the all threads +in the selected region (if there is one). For notmuch prior to 0.17 +this behaviour will occur automatically with the functions given +above. To get this behaviour on 0.17+ do the following: + + (define-key notmuch-search-mode-map "S" + (lambda (&optional beg end) + "mark thread as spam" + (interactive (notmuch-search-interactive-region)) + (notmuch-search-tag (list "+spam" "-inbox") beg end))) + +The analogous functionality in notmuch-tree is currently missing. + The definitions above make use of a lambda function, but you could also define a separate function first: