]> git.notmuchmail.org Git - notmuch-wiki/blobdiff - emacstips.mdwn
use code font
[notmuch-wiki] / emacstips.mdwn
index 3eed83eb4d0f6f8712b72b6f38ea5f600756167d..9b4e1a191c3d4010719c871591f682fc0f2ff891 100644 (file)
@@ -1,7 +1,8 @@
 [[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
-[[!toc]]
 #Tips and Tricks for using notmuch with Emacs
 
+[[!toc levels=2]]
+
 The main Notmuch message reading client is **notmuch.el**, which is an
 [emacs](http://www.gnu.org/software/emacs/) major mode, and is
 included in the notmuch package.
@@ -46,15 +47,16 @@ messages.  When in message mode, you can type `C-c ?` for help.
 If you would like to use address autocompletion when composing
 messages, see [address completion](#address_completion).
 
-When you are ready to send a message, type `C-c C-c`.  By default
+When you are ready to send a message, type `C-c C-c`. By default
 message mode will use your sendmail command to send mail, so make sure
-that works.  One annoying standard configuration of message mode is
+that works. One annoying standard configuration of message mode is
 that it will hide the sent mail in your emacs frame stack, but it will
 not close it. If you type several mails in an emacs session they will
 accumulate and make switching between buffers more annoying. You can
 avoid that behavior by adding `(setq message-kill-buffer-on-exit t)`
-in your `.emacs` file which will really close the mail window after
-sending it.
+in your `.emacs` file (or doing `M-x customize-variable
+message-kill-buffer-on-exit`) which will really close the mail window
+after sending it.
 
 ## Attaching files
 
@@ -173,14 +175,26 @@ useful to you.
 
 ## Viewing HTML messages with an external viewer
 
-The emacs client can often display an HTML message inline, but it
-sometimes fails for one reason or another, (or is perhaps inadequate
-if you really need to see the graphical presentation of the HTML
-message).
+The emacs client can display an HTML message inline using either the
+`html2text` library or some text browser, like w3m or lynx. This is
+controlled by the `mm-text-html-renderer` variable.
+
+The first option is theorically better, because it can generate
+strings formatted for emacs and do whatever you want, e.g., substitute
+text inside <b> tags for bold text in the buffer. The library, however
+is still in a very early development phase and cannot yet process
+properly many elements, like tables and <style> directives, and even
+the generated text is often poorly formatted.
+
+Among the available browsers, w3m seems to do a better job converting
+the html, and if you have the w3m emacs package, you can use it,
+instead of the w3m-standalone, and thus preserve the text formatting.
 
-In this case, it can be useful to display the message in an external
-viewer, such as a web browser. Here's a little script that Keith
-Packard wrote, which he calls `view-html`:
+But if the rendering fails for one reason or another, or if you really
+need to see the graphical presentation of the HTML message, it can be
+useful to display the message in an external viewer, such as a web
+browser. Here's a little script that Keith Packard wrote, which he
+calls `view-html`:
 
                #!/bin/sh
                dir=`mktemp -d`
@@ -250,7 +264,7 @@ candidates based on a search string.  There are currently two
 available:
 
   * The python tool `notmuch_address.py` (`git clone
-    http://jkr.acm.jhu.edu/git/notmuch_addresses.git`) (slower, but
+    http://commonmeasure.org/~jkr/git/notmuch_addresses.git`) (slower, but
     no compilation required so good for testing the setup)
 
   * The vala-based
@@ -262,10 +276,12 @@ available:
 
                     cc -o addrlookup addrlookup.c `pkg-config --cflags --libs gobject-2.0` -lnotmuch
 
-EUDC is integrated into emacs and is needed for tab completion of
-email addresses. See [this
-mail](http://mid.gmane.org/87fx3uflkx.fsf@jhu.edu)
-(id:87fx3uflkx.fsf@jhu.edu) for more information.
+You can perform tab-completion using either of these programs. Just add the following to your .emacs:
+
+    (require 'notmuch-address)
+    (setq notmuch-address-command "/path/to/address_fetching_program")
+    (notmuch-address-message-insinuate)
+
 
 ## How to sign/encrypt messages with gpg