]> git.notmuchmail.org Git - notmuch-wiki/blobdiff - faq.mdwn
news for notmuch 0.34
[notmuch-wiki] / faq.mdwn
index c2a878442d2c5a1b425907a0ca26e4829dd520e8..9d47f1bad6c8e242c31bfce7b248b21889e18f77 100644 (file)
--- a/faq.mdwn
+++ b/faq.mdwn
@@ -41,3 +41,81 @@ 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 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?
+
+See `index.header.<prefix>` in `notmuch-config(1)` for details. TLD;R:
+
+    notmuch config set index.header.List List-Id
+
+## 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.
+
+
+## How can I extract a git patchset for an email thread?
+
+See [notmuch-extract-patch](https://github.com/aaptel/notmuch-extract-patch).
+
+## T150-tagging.sh is failing with Xapian 1.4.6
+
+This is (probably) a bug in this point release of Xapian, should be
+fixed in 1.4.7.  Try reverting Xapian commit
+`093999529acc2f86900d91fed0c7f7af301ab94a`, e.g. with the following
+patch.
+
+
+    index 80e578b85..a47f14a68 100644
+    --- a/xapian-core/backends/glass/glass_postlist.cc
+    +++ b/xapian-core/backends/glass/glass_postlist.cc
+    @@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_,
+         (void)need_pos;
+         if (term_.empty())
+            RETURN(NULL);
+    -    if (!this_db.get() || this_db->postlist_table.is_modified())
+    +    if (!this_db.get() || this_db->postlist_table.is_writable())
+            RETURN(NULL);
+         RETURN(new GlassPostList(this_db, term_, cursor->clone()));
+     }
+