]> git.cworth.org Git - notmuch-wiki/blobdiff - faq.mdwn
News for release 0.38.3
[notmuch-wiki] / faq.mdwn
index 2558eb3869a9f9566bc91dca0ca5c4282e57010c..a498e5b9744c15e4c692a85085700080954d587a 100644 (file)
--- a/faq.mdwn
+++ b/faq.mdwn
@@ -1,6 +1,8 @@
 [[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
 # Frequently Asked Questions
 
 [[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
 # Frequently Asked Questions
 
+See also [[Less Frequently Asked Questions|lfaq]].
+
 [[!toc levels=2]]
 
 ## How come this query matches mails in folder:2013? `notmuch search --output=files folder:inbox`
 [[!toc levels=2]]
 
 ## How come this query matches mails in folder:2013? `notmuch search --output=files folder:inbox`
@@ -12,6 +14,30 @@ with the same message (i.e. the files have identical Message-ID). A
 `folder:` search will match the folder of any of the files. The
 `--output=files` option outputs all the files of all matching messages.
 
 `folder:` search will match the folder of any of the files. The
 `--output=files` option outputs all the files of all matching messages.
 
+## How come my query does not list all the emails on the file system?
+
+You may have emails that have some of the [exclude
+tags](https://notmuchmail.org/doc/latest/man1/notmuch-search.html#cmdoption-search-exclude)
+
+Notmuch can be configured to exclude some tags while searching. You
+can list excluded tags with
+
+    $ notmuch config get search.exclude_tags
+    deleted
+
+To verify this is the reason of the discrepancy, add the excluded tags
+explicitly to your query. If the problematic query is
+
+    $ notmuch search --output=files -- folder:inbox
+
+Try
+
+    $ notmuch search --output=files -- folder:inbox tag:deleted
+
+You can also temporarily turn of the excluded tags feature with `--exclude`.
+
+    $ notmuch search --output=files --exclude=false -- folder:inbox
+
 ## Shouldn't notmuch support inline PGP?
 
 [Why it might not be a good idea](https://dkg.fifthhorseman.net/notes/inline-pgp-harmful/)
 ## Shouldn't notmuch support inline PGP?
 
 [Why it might not be a good idea](https://dkg.fifthhorseman.net/notes/inline-pgp-harmful/)
@@ -27,11 +53,26 @@ See [[excluding]].
 
 See help for `message-citation-line-format` for details.
 
 
 See help for `message-citation-line-format` for details.
 
+## What are sexp queries?
+
+For the syntax of sexp queries, see [the manual
+page](https://notmuchmail.org/doc/latest/man7/notmuch-sexp-queries.html).
+
+To see if your version of notmuch supports them, run
+
+        $ notmuch config get built_with.sexp_queries
+
 ## How do I search for messages that have no tags?
 
 ## How do I search for messages that have no tags?
 
-Unfortunately, there is no way to do this directly.
+To do this directly, you need a recent notmuch compiled with sexp
+queries (see above). You can then run
+
+        $ notmuch search --query=sexp --output=messages '(not (tag *))'
 
 
-However, it's possible to accomplish this using two searches in shell. First,
+The same style of query should work for any prefix, even user defined
+prefixes like `List` (see below).
+
+Otherwise, 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:
 
 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:
 
@@ -44,8 +85,8 @@ Next, use that to query the messages:
 
 ## How do I search for punctuation, specific special characters, or regexp?
 
 
 ## 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.
+Please see the [notmuch-search-terms manual
+page](https://notmuchmail.org/doc/latest/man7/notmuch-search-terms.html) first.
 
 The main thing to understand is that Xapian, and therefore Notmuch, searches are
 closer to natural language searches than regular expression
 
 The main thing to understand is that Xapian, and therefore Notmuch, searches are
 closer to natural language searches than regular expression
@@ -54,20 +95,30 @@ 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.
 
 The boolean prefix searches (see Boolean and Probabilistic Prefixes in the man
 page), such as tag: or path: searches, need an exact match.
 
+For [specific
+fields](https://notmuchmail.org/doc/latest/man7/notmuch-search-terms.html#search-prefixes)
+it is possible to use regex searches (although these are often
+noticeably slower than native Xapian queries). The limited set of
+fields is a quirk of implementation which requires a Xapian "value
+slot" in the database schema. Adding regex support for more fields to
+would require of adding more value slots to the schema. The
+performance impact of that needs to be experimentally evaluated, and
+assuming it is not too bad, some database upgrade code would need to
+be written.
+
+## How do I search for folders or paths with spaces?
+
+The spaces in the names must be escaped. For example if you use bash or zsh,
+you can search for messages with tag `foo` in folder `INBOX/folder with spaces`
+with this query:
+
+        $ notmuch search tag:foo 'folder:"INBOX/folder with spaces"'
+
 ## How do I search for the `List-Id:` header?
 
 ## 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.
+See `index.header.<prefix>` in `notmuch-config(1)` for details. TLD;R:
 
 
-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.
+    notmuch config set index.header.List List-Id
 
 ## Can I use notmuch with grsec?
 
 
 ## Can I use notmuch with grsec?
 
@@ -81,21 +132,26 @@ This is required in order to run the `pre-new` and `post-new` hooks.
 No. Tagging is message based.
 
 It is possible, however, to make tags propagate to all messages in a thread
 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
+using a little bit of scripting in the [post-new
+hook](https://notmuchmail.org/doc/latest/man5/notmuch-hooks.html). 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
 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)
+                notmuch tag +$tag thread:{tag:$tag}
         done
 
         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.
+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. See
+[notmuch-search-terms](https://notmuchmail.org/doc/latest/man7/notmuch-search-terms.html)
+for discussion of `thread:{}` queries.
 
 
 ## How can I extract a git patchset for an email thread?
 
 
 
 ## How can I extract a git patchset for an email thread?
 
-See [notmuch-extract-patch](https://github.com/aaptel/notmuch-extract-patch).
+See
+[notmuch-extract-patch](https://github.com/aaptel/notmuch-extract-patch). See
+also notmuch-extract-patch in
+[mailscripts](https://git.spwhitton.name/mailscripts/).