X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacstips.mdwn;h=c384fb61b17161a5b869555188f7088f6a53f3e8;hb=cefaaee4c0b7e2e1b7f141eb4d5bf023c2a43cac;hp=0fcb1c85a8081cefab12654c3239d184327fa30f;hpb=8a5cd7bd9456fa5caf243e50ca288c95371bd573;p=notmuch-wiki diff --git a/emacstips.mdwn b/emacstips.mdwn index 0fcb1c8..c384fb6 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -14,6 +14,10 @@ To use the Notmuch emacs mode, first add the following line to your (require 'notmuch) +or you can load the package via autoload: + + (autoload 'notmuch "notmuch" "notmuch mail" t) + Then, either run "emacs -f notmuch", or execute the command `M-x notmuch` from within a running emacs. @@ -47,24 +51,25 @@ 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-variablemessage-kill-buffer-on-exit`) which will +really close the mail window after sending it. ## Attaching files Using the `M-x mml-attach-file` command, you can attach any file to be -send with your mail. By default this command is bound to the menu item -*Attachments--Attach File* with the key binding `C-c C-a`. The +sent with your mail. By default this command is bound to the menu item +*Attachments--Attach File* with the key binding `C-c C-a`. The variable `mml-dnd-attach-options` (`M-x -customize-variablemml-dnd-attach-options`) can be set to allow -the prompting for various attachment options (such as +customize-variablemml-dnd-attach-options`) can be set to +allow the prompting for various attachment options (such as inline/attachment) if you want to do that. For those who prefer a more graphical interface, you can also simply @@ -91,6 +96,40 @@ mentioned as script arguments. (Note: The script expects that you have # 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 @@ -189,11 +228,11 @@ 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 is perhaps -inadequate 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`: +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` @@ -222,13 +261,13 @@ don't know why." ## msmtp, message mode and multiple accounts -As an alternative to running a mail server such as sendmail or -postfix just to send email, it is possible to use -[msmtp](http://msmtp.sourceforge.net/). This small application will +As an alternative to running a mail server such as sendmail or postfix +just to send email, it is possible to use +[msmtp](http://msmtp.sourceforge.net/). This small application will look like `/usr/bin/sendmail` to a MUA such as emacs message mode, but -will just forward the email to an external SMTP server. It's fairly -easy to set up and it support several account for using different -SMTP servers. The msmtp pages have several examples. +will just forward the email to an external SMTP server. It's fairly +easy to set up and it supports several accounts for using different +SMTP servers. The msmtp pages have several examples. A typical scenario is that you want to use the company SMTP server for email coming from your company email address, and your personal @@ -249,6 +288,13 @@ With that in place, you need a `.msmtprc` with the accounts configured for the domains you want to send out using specific SMTP servers and the rest will go to the default account. +If you have a hard time getting the above to work for you, as I did, +it's also possible to add a message-send-mail-hook in your .emacs to +send the from header explicitly as an argument to msmtp as described +[here](http://www.emacswiki.org/cgi-bin/wiki/GnusMSMTP#toc2) on the +emacswiki. + + ## Address completion when composing There are currently two solutions to this: @@ -263,7 +309,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 @@ -275,10 +321,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 @@ -300,3 +348,11 @@ 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. + +### Troubleshooting message-mode gpg support + +- If you have trouble with expired subkeys, you may have encounted + emacs bug #7931. This is fixed in git commit 301ea744c on + 2011-02-02. Note that if you have the Debian package easypg + installed, it will shadow the fixed version of easypg included with + emacs.