From df5838f61f3d005129772f9cb8003992eaaed6c5 Mon Sep 17 00:00:00 2001 From: Jameson Rollins Date: Wed, 15 Sep 2010 14:39:31 -0400 Subject: [PATCH] expand the key binding emacstip --- emacstips.mdwn | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/emacstips.mdwn b/emacstips.mdwn index b1e7dbb..5f48335 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -74,10 +74,35 @@ works by dragging from the file manager without any modifications.

Advanced tips and tweaks

-* **Add a keybinding to add/remove/toggle a tag.** +* **Add a key binding to add/remove/toggle a tag.** - Here's an example of how to add a key binding to notmuch-show-mode - to toggle a "deleted" tag: + The notmuch-{search,show}-{add,remove}-tag functions are very useful + for making quick tag key bindings. For instance, here's an example + of how to make a key binding to add the "spam" tag and remove the + "inbox" tag in notmuch-show-mode: + + (define-key notmuch-show-mode-map "S" + (lambda () + "mark message as spam" + (interactive) + (notmuch-show-add-tag "spam") + (notmuch-show-remove-tag "inbox"))) + + You can do the same for threads in notmuch-search-mode by just + replacing "show" with "search" in the called functions. + + The definition above makes use of a lambda function, but you could + also define a separate function first: + + (defun notmuch-show-tag-spam() + "mark message as spam" + (interactive) + (notmuch-show-add-tag "spam") + (notmuch-show-remove-tag "inbox"))) + (define-key notmuch-show-mode-map "S" 'notmuch-show-tag-spam) + + Here's a more complicated example of how to add a toggle "deleted" + key: (define-key notmuch-show-mode-map "d" (lambda () @@ -87,19 +112,6 @@ works by dragging from the file manager without any modifications. (notmuch-show-remove-tag "deleted") (notmuch-show-add-tag "deleted")))) - You can do the same for threads in notmuch-search-mode by just - replacing "show" with "search" in the called functions. This - definition makes use of a lambda function, but you could just as - easily defined a separate function first: - - (defun notmuch-show-toggle-deleted-tag() - "toggle deleted tag for message" - (interactive) - (if (member "deleted" (notmuch-show-get-tags)) - (notmuch-show-remove-tag "deleted") - (notmuch-show-add-tag "deleted"))) - (define-key notmuch-show-mode-map "d" 'notmuch-show-toggle-deleted-tag) - * **How to do FCC/BCC...** Any notmuch reply will automatically include your primary email -- 2.43.0