# 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;
+
+ ;(setq user-mail-address (notmuch-user-primary-email)
+ ; user-full-name (notmuch-user-name))
+
+ ; 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)
+
+Then, add to `.emacs`:
+
+ (autoload 'notmuch "~/.emacs.d/my-notmuch" "notmuch mail" t)
+
+
## Add a key binding to add/remove/toggle a tag
The `notmuch-{search,show}-{add,remove}-tag` functions are very useful
(notmuch-show-remove-tag "deleted")
(notmuch-show-add-tag "deleted"))))
+## Restore reply-to-all key binding to 'r'
+
+Starting from notmuch 0.12 the 'r' key is bound to reply-to-sender instead of
+reply-to-all. Here's how to swap the reply to sender/all bindings in show mode:
+
+ (define-key notmuch-show-mode-map "r" 'notmuch-show-reply)
+ (define-key notmuch-show-mode-map "R" 'notmuch-show-reply-sender)
+
+And in search mode:
+
+ (define-key notmuch-search-mode-map "r" 'notmuch-search-reply-to-thread)
+ (define-key notmuch-search-mode-map "R" 'notmuch-search-reply-to-thread-sender)
+
+
## How to do FCC/BCC...
The Emacs interface to notmuch will automatically add an `Fcc`
You can also use the notmuch database as a mail address book itself.
To do this you need a command line tool that outputs likely address
-candidates based on a search string. There are currently two
+candidates based on a search string. There are currently three
available:
* The python tool `notmuch_address.py` (`git clone
cc -o addrlookup addrlookup.c `pkg-config --cflags --libs gobject-2.0` -lnotmuch
-You can perform tab-completion using either of these programs. Just add the following to your .emacs:
+ * Shell/fgrep/perl combination [nottoomuch-addresses.sh](http://www.iki.fi/too/nottoomuch/nottoomuch-addresses/).
+ This tools maintains it's own address "database" gathered from email
+ files notmuch knows and search from that "database" is done by fgrep(1).
+
+You can perform tab-completion using any of these programs. Just add the following to your .emacs:
(require 'notmuch-address)
(setq notmuch-address-command "/path/to/address_fetching_program")