I have a bunch of key bindings for mass selection and deletion of mail messages. The deletion ones can be rather dangerous, so sometimes I just use the selection ones and then hit delete (or file, or whatever is appropriate).

(I also have an action that sends me a Growl notification of the subjects and number of messages deleted if I delete more than a few, that's useful for when I accidentally go overboard. I can upload that if people are interested.)

The selection ones are particularly useful now that I'm using the recently shared modification that adds an extra pane showing the selected messages and (in my case) everything else with the same subject. It makes it far easier to see what I just selected.

Of those, I probably use t, i, s, and f most often. 'dt' is great for nuking a conversation you are done with. 'di' is good for deleting just the conversation in your inbox, but not the items you've filed already (e.g. you filed that useful post to MailMate, but you want to delete all the replies). 'ds' is good for when threading isn't capturing everything, or it's a bunch of automated messages with the same subject. And 'df' is great for email notifications from online services (a dozen messages from a store about new products).

In any case, here they are if anyone would like to try them. If you haven't modified keybindings, they go in `~/MailMate/Resources/KeyBindings/Kee.plist` and then you'd set your Custom Key Bindings in preferences to 'Kee'.

Thanks to all the other MailMate users who made it possible to build these. And of course, our favorite developer!

```json
{
// "r" = ( "replyAll:", "selectAll:", "decreaseQuoteLevel:", "deselectAll:", "moveToBeginningOfDocument:", "insertNewline:", "insertNewline:", "moveToBeginningOfDocument:" );
    "r"     = ( "addTag:", "HTMLReply", "replyAll:" );
    "c"     = "collapseThread:";
    "e"     = "expandThread:";
    "j"     = "nextMessage:";
    "k"     = "previousThread:";
    "n"     = "nextUnreadMessage:";
    "p"     = "previousUnreadMessage:";
"J" = ( "markAsNotJunk:", "removeTag:", "\\Seen", "moveToMailbox:",'INBOX');

    // delete commands
    "d" = {
            // Delete entire thread
            "t" = ( "selectThread:", "deleteMessage:" );
// Delete the thread in the inbox, but leave filed items alone "i" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path = 'INBOX'", "deleteMessage:" );
            // Delete thread except mail that was mine (I sent)
"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'Sent Messages' and #source.path != 'Sent Items'", "deleteMessage:" );
            // Delete thread except the stuff in inbox or sent (other)
"o" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'INBOX' and #source.path != 'Sent Messages' and #source.path != 'Sent Items'", "deleteMessage:" );
            // Delete the subject
"s" = ( "selectWithFilter:", "subject = '${subject}'", "moveToMailbox:", "trash" );
            // Delete by from address
"f" = ( "selectWithFilter:", "from.address = '${from.address}'", "moveToMailbox:", "trash" );
            // Delete any mail to this recipient
"r" = ( "selectWithFilter:", "#recipient.address = '${#recipient.address}'", "moveToMailbox:", "trash" );
    };

// select commands (good if you aren't sure what the delete in thread action is going to do!)
    "s" = {
            // Select an entire thread
            "t"     = "selectThread:";
// Select just the items in the thread that are in my inbox, leaving filed messages alone "i" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path = 'INBOX'" );
            // Select thread except mail that was mine (I sent)
"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'Sent Messages' and #source.path != 'Sent Items'" );
            // Select thread except the stuff in inbox or sent (other)
"o" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'INBOX' and #source.path != 'Sent Messages' and #source.path != 'Sent Items'" );
            // Select the subject
"s" = ( "selectWithFilter:", "subject = '${subject}'" );
            // Select by from address
"f" = ( "selectWithFilter:", "from.address = '${from.address}'" ); // Select any mail to this recipient (warning, I've had this crash MailMate) "r" = ( "selectWithFilter:", "#recipient.address = '${#recipient.address}'" );

//"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.mailto !=[x] \\$SENT.source.mailto" ); // "m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and from.address !=[x] \\$SENT.from.address" );

    };

    // FROM SOMEONE "c" = ( "showThread:", "showCorrespondence" );

    // Editing commands
    // bold selection
"@b" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "**", yank:, insertText:, " ", moveLeft:, insertText:, "**", moveRight:, deleteBackward:);
    // italicize selection
"@i" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "_", yank:, insertText:, " ", moveLeft:, insertText:, "_", moveRight:, deleteBackward:);
    // typewriterize selection
"@t" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "`", yank:, insertText:, " ", moveLeft:, insertText:, "`", moveRight:, deleteBackward:);
}
```
_______________________________________________
mailmate mailing list
mailmate@lists.freron.com
http://lists.freron.com/listinfo/mailmate

Reply via email to