]> git.cworth.org Git - notmuch-wiki/blobdiff - emacstips.mdwn
notmuch performance: chert vs flint, compacting
[notmuch-wiki] / emacstips.mdwn
index 1fc115c476299464289b7cacce555a540ae23b66..db1655019831ef436b299c97bd03b8270649d2e3 100644 (file)
@@ -1,6 +1,8 @@
 [[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
 #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.
@@ -40,7 +42,7 @@ key.  To reply to a message or thread, just hit the 'r' key.
 
 When composing new messages, you will be entered in emacs's
 `message-mode`, which is a powerful mode for composing and sending
-messages.  When in message move, you can type `C-c ?` for help.
+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).
@@ -73,12 +75,13 @@ if files are dragged from the file manager.
 And for those who prefer working from command line, the following
 script opens new emacs window with empty message and attaches files
 mentioned as script arguments. (Note: The script expects that you have
-`(server-start)` in your .emacs)
+`(server-start)` in your `.emacs` file.)
 
     #!/bin/sh
     attach_cmds=""
     while [ "$1" ]; do
-        attach_cmds="$attach_cmds (mml-attach-file \"$1\")"
+        fullpath=$(readlink --canonicalize $1)
+        attach_cmds="$attach_cmds (mml-attach-file \"$fullpath\")"
         shift
     done
     emacsclient -a '' -c -e "(progn (compose-mail) $attach_cmds)"
@@ -171,17 +174,29 @@ 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.
 
-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`:
+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.
+
+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=3D`mktemp -d`
+               dir=`mktemp -d`
                trap "rm -r $dir" 0
                cat "$@" > "$dir"/msg
                if munpack -C "$dir" -t < "$dir"/msg 2>&1 | grep 'Did not find'; then
@@ -247,7 +262,7 @@ To do this you need a command line tool that outputs likely address
 candidates based on a search string.  There are currently two
 available:
 
-  * The python tool `notmuch\_address.py` (`git clone
+  * The python tool `notmuch_address.py` (`git clone
     http://jkr.acm.jhu.edu/git/notmuch_addresses.git`) (slower, but
     no compilation required so good for testing the setup)
 
@@ -281,3 +296,7 @@ This inserts the required `<#part sign=pgpmime>` into the beginning
 of the mail text body and will be converted into a pgp signature
 when sending (so one can just manually delete that line if signing
 is not required).
+
+Alternatively, you may prefer to use `mml-secure-message-sign-pgpmime` instead
+of `mml-secure-sign-pgpmime` to sign the whole message instead of just one
+part.