X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacstips.mdwn;h=1decf6363bd776fd31364ea4202acf56e0549dd7;hb=371930f2b760c89014d15fb7e5c35fae8f69140e;hp=dc16430af49a34661cfc44e2ef868c62d0b8f497;hpb=12db4f1ce86503bf1a81d40b938e5b55893bb01a;p=notmuch-wiki diff --git a/emacstips.mdwn b/emacstips.mdwn index dc16430..1decf63 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -92,6 +92,17 @@ mentioned as script arguments. (Note: The script expects that you have done emacsclient -a '' -c -e "(progn (compose-mail) $attach_cmds)" +## Issues with Emacs 24 + +If notmuch-show-mode behaves badly for you in emacs 24.x try adding one of + + (setq gnus-inhibit-images nil) + +or + + (require 'gnus-art) + +to your .emacs file. ----- @@ -104,29 +115,28 @@ 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 - ;; + ;;; my-notmuch.el -- my notmuch mail configuration + ;;; - ;; add here stuff required to be configured *before* - ;; notmuch is loaded; + ;;; 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") + ;; 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 + ;;; 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)) + ;;; 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 & 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, adto `.emacs`: +Then, add to `.emacs`: (autoload 'notmuch "~/.emacs.d/my-notmuch" "notmuch mail" t) @@ -147,10 +157,10 @@ In notmuch versions up to 0.11.x (notmuch-show-add-tag "spam") (notmuch-show-remove-tag "inbox"))) -Starting from notmuch 0.12 (not released yet) the functions -`notmuch-show-add-tag` and `notmuch-show-remove-tag` have changed to -be more versatile and lost noninteractive use. When upgrading to 0.12 -the above needs to be changed to this: +Starting from notmuch 0.12 the functions `notmuch-show-add-tag` and +`notmuch-show-remove-tag` have changed to be more versatile and lost +noninteractive use. When upgrading to 0.12 the above needs to be +changed to this: (define-key notmuch-show-mode-map "S" (lambda () @@ -161,12 +171,27 @@ the above needs to be changed to this: You can do the same for threads in `notmuch-search-mode` by just replacing "show" with "search" in the called functions. -(Starting from notmuch 0.12 use `notmuch-search-tag-thread` instead) +Starting from notmuch 0.12 use `notmuch-search-tag-thread` instead: + + (define-key notmuch-search-mode-map "S" + (lambda () + "mark messages in thread as spam" + (interactive) + (notmuch-show-tag-thread "+spam" "-inbox"))) + +Starting from notmuch 0.13 use `notmuch-search-tag` -- it has a little +different usage syntax: + + (define-key notmuch-search-mode-map "S" + (lambda () + "mark messages in thread as spam" + (interactive) + (notmuch-search-tag '("+spam" "-inbox")))) The definition above makes use of a lambda function, but you could also define a separate function first: - (defun notmuch-show-tag-spam() + (defun notmuch-show-tag-spam () "mark message as spam" (interactive) (notmuch-show-add-tag "spam") @@ -186,7 +211,7 @@ key: (notmuch-show-remove-tag "deleted") (notmuch-show-add-tag "deleted")))) -And version for notmuch 0.12 (not released yet) +And version for notmuch 0.12 (define-key notmuch-show-mode-map "d" (lambda () @@ -397,9 +422,10 @@ available: * 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). + 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: +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") @@ -421,12 +447,11 @@ You can add the sender of a message to Google Contacts by piping the message ## How to sign/encrypt messages with gpg -Messages can by signed using gpg by invoking `M-x -mml-secure-sign-pgpmime` (or `M-x -mml-secure-encrypt-pgpmime`). These functions are available via the -standard `message-mode` keybindings `C-c C-m s p` and `C-c C-m c -p`. To sign outgoing mail by default, use the `message-setup-hook` -in your `.emacs` file: +Messages can by signed using gpg by invoking +`M-x mml-secure-sign-pgpmime` (or `M-x mml-secure-encrypt-pgpmime`). +These functions are available via the standard `message-mode` keybindings +`C-c C-m s p` and `C-c C-m c p`. To sign outgoing mail by default, use the +`message-setup-hook` in your `.emacs` file: ;; Sign messages by default. (add-hook 'message-setup-hook 'mml-secure-sign-pgpmime) @@ -447,3 +472,70 @@ part. 2011-02-02. Note that if you have the Debian package easypg installed, it will shadow the fixed version of easypg included with emacs. + +## Multiple identities using gnus-alias + +[gnus-alias](http://www.emacswiki.org/emacs/GnusAlias) allows you to +define multiple identities when using `message-mode`. You can specify +the from address, organization, extra headers (including *Bcc*), extra +body text, and signature for each identity. Identities are chosen +based on a set of rules. When you are in message mode, you can switch +identities using gnus-alias. + +### Installation + +- put `gnus-alias.el` on your load Emacs-Lisp load path (add new directory + to load path by writing `(add-to-list 'load-path "/some/load/path")` into + your `.emacs`. + +- Add the following to your `.emacs` + + (autoload 'gnus-alias-determine-identity "gnus-alias" "" t) + (add-hook 'message-setup-hook 'gnus-alias-determine-identity) + +Looking into `gnus-alias.el` gives a bit more information... + +### Example Configuration + +Here is an example configuration. + + ;; Define two identities, "home" and "work" + (setq gnus-alias-identity-alist + '(("home" + nil ;; Does not refer to any other identity + "John Doe " ;; Sender address + nil ;; No organization header + nil ;; No extra headers + nil ;; No extra body text + "~/.signature") + ("work" + nil + "John Doe " + "Example Corp." + (("Bcc" . "john.doe@example.com")) + nil + "~/.signature.work"))) + ;; Use "home" identity by default + (setq gnus-alias-default-identity "home") + ;; Define rules to match work identity + (setq gnus-alias-identity-rules + '(("work" ("any" "john.doe@\\(example\\.com\\|help\\.example.com\\)" both) "work")) + ;; Determine identity when message-mode loads + (add-hook 'message-setup-hook 'gnus-alias-determine-identity) + +When `gnus-alias` has been loaded (using autoload, require, *M-x load-library* +or *M-x load-file* (load-file takes file path -- therefore it can be used +without any `.emacs` changes)) the following commands can be used to get(/set) +more information (some of these have "extensive documentation"): + + M-x describe-variable RET gnus-alias-identity-alist + M-x describe-variable RET gnus-alias-identity-rules + M-x describe-variable RET gnus-alias-default-identity + + M-x customize-group RET gnus-alias RET + or + M-x gnus-alias-customize RET + +The last two do the same thing. + +See also the **Usage:** section in `gnus-alias.el`.