X-Git-Url: https://git.notmuchmail.org/git?p=notmuch-wiki;a=blobdiff_plain;f=faq.mdwn;h=ec5b913ab3722e470e0bc1845ae375e7688a4678;hp=3ea8d37fd9067e1556f7e867a5271c5915cc3f6c;hb=a8af51204b33c532bdb0fefae2e9e31fec945a21;hpb=2ecf58b26559d76e6fac76cb92093b1b4e394b77 diff --git a/faq.mdwn b/faq.mdwn index 3ea8d37..ec5b913 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -1,3 +1,4 @@ +[[!img notmuch-logo.png alt="Notmuch logo" class="left"]] # Frequently Asked Questions [[!toc levels=2]] @@ -14,3 +15,81 @@ with the same message (i.e. the files have identical Message-ID). A ## Shouldn't notmuch support inline PGP? [Why it might not be a good idea](https://dkg.fifthhorseman.net/notes/inline-pgp-harmful/) + +## How do I delete messages + +See [[excluding]]. + +## How do I configure the citation line when replying in Emacs? + + (setq message-citation-line-format "On %a, %d %b %Y, %f wrote:") + (setq message-citation-line-function 'message-insert-formatted-citation-line) + +See help for `message-citation-line-format` for details. + +## How do I search for messages that have no tags? + +Unfortunately, there is no way to do this directly. + +However, it's possible to accomplish this using two searches in shell. First, +you need to query all tags in the database, and transform the result into a +query that matches messages that have none of those tags: + + $ notmuch search --output=tags \* | sed 's/^/not tag:/;2~1s/^/and /' + +Next, use that to query the messages: + + $ notmuch search $(notmuch search --output=tags \* | \ + sed 's/^/not tag:/;2~1s/^/and /') + +## How do I search for punctuation, specific special characters, or regexp? + +Please see the [[notmuch-search-terms manual +page|manpages/notmuch-search-terms-7]] first. + +The main thing to understand is that Xapian, and therefore Notmuch, searches are +closer to natural language searches than regular expression +searches. Punctuation is mostly ignored. + +The boolean prefix searches (see Boolean and Probabilistic Prefixes in the man +page), such as tag: or path: searches, need an exact match. + +## How do I search for the `List-Id:` header? + +Currently there is no way to search for `List-Id:`. As a workaround, try using a +`to:` prefix search (which covers both `To:` and `Cc:` headers) on the mailing +list address. + +Limitations in the duplicate message handling are the main reason for not +indexing the `List-Id:` header. If you receive the same message via both the +list and directly (by way of `To:` or `Cc:`), only the first message encountered +will be indexed. Only the message received via the list will have `List-Id:`, +but you would expect a `List-Id:` search to find the message, regardless of the +order in which the duplicates were received. This is a more general problem than +just `List-Id:`, and once this has been resolved, adding `List-Id:` indexing is +trivial. + +## Can I use notmuch with grsec? + +Sure! It works out of the box. If you have TPE enabled (trusted path execution), +make sure the user is executing the script belongs to the +`kernel.grsecurity.tpe_gid` (in debian this is grsec-tpe). +This is required in order to run the `pre-new` and `post-new` hooks. + +## Can I tag threads? + +No. Tagging is message based. + +It is possible, however, to make tags propagate to all messages in a thread +using a little bit of scripting in the [[post-new +hook|manpages/notmuch-hooks-5]]. For example, to add the muted tag to all +messages in threads that have at least one message with the muted tag: + + THREAD_TAGS="muted" + for tag in "$THREAD_TAGS"; do + notmuch tag +$tag $(notmuch search --output=threads tag:$tag) + done + +You can add other tags to `THREAD_TAGS` as needed. Note that this is one way +only; you need to explicitly remove the tag from all the messages in a thread to +stop it from propagating again.