X-Git-Url: https://git.cworth.org/git?p=notmuch-wiki;a=blobdiff_plain;f=manpages%2Fnotmuch-sexp-queries-7.mdwn;h=e6968ada5ebd74cfcb454c0d432a219831505792;hp=6744e9145a3b867df36f9df23434f7be7a478950;hb=c53d121cfc5e56594ffa3bb7250e04e2cc30587e;hpb=2a046ac75e2e596b838d625b9dd9894fa9175384 diff --git a/manpages/notmuch-sexp-queries-7.mdwn b/manpages/notmuch-sexp-queries-7.mdwn index 6744e91..e6968ad 100644 --- a/manpages/notmuch-sexp-queries-7.mdwn +++ b/manpages/notmuch-sexp-queries-7.mdwn @@ -19,7 +19,7 @@ tax(). Support for this syntax is currently optional, you can test if your build of notmuch supports it with - $ notmuch config get built_with.sexpr_query + $ notmuch config get built_with.sexp_queries

  S-EXPRESSIONS

@@ -28,13 +28,13 @@ s-expressions inside parentheses. Atoms are either basic value - A basic value is an unquoted string containing no whitespace, - double quotes, or parentheses. + A basic value is an unquoted string containing no whitespace, double + quotes, or parentheses. quoted string - Double quotes (") delimit strings possibly containing whitespace - or parentheses. These can contain double quote characters by es‐ - caping with backslash. E.g. "this is a quote \"". + Double quotes (") delimit strings possibly containing whitespace or + parentheses. These can contain double quote characters by escaping + with backslash. E.g. "this is a quote \"".

  S-EXPRESSION QUERIES

@@ -43,9 +43,11 @@ query consisting of a prefix atom (first element) defining a field, logical operation, or modifier, and 0 or more subqueries. - * "*" matches any non-empty string in the current field. + * + "*" matches any non-empty string in the current field. - () The empty list matches all messages + () + The empty list matches all messages term Match all messages containing term, possibly after stemming or @@ -54,25 +56,25 @@ values) in s-expression queries. For information on phrase split‐ ting see FIELDS. - ( field q_1 q_2 ... q_n ) - Restrict the queries q_1 to q_n to field, and combine with and - (for most fields) or or. See FIELDS for more information. - - ( operator q_1 q_2 ... q_n ) - Combine queries q_1 to q_n. Currently supported operators are - and, or, and not. (not q_1 ... q_n ) is equivalent to (and (not - q_1 ) ... (not q_n )). - - ( modifier q_1 q_2 ... q_n ) - Combine queries q_1 to q_n, and reinterpret the result (e.g. as - a regular expression). See MODIFIERS for more information. - - (macro ( p_1 ... p_n ) body) - Define saved query with parameter substitution. The syntax is - recognized only in saved s-expression queries (see squery.* in - notmuch-config(1)). Parameter names in body must be prefixed - with , to be expanded (see MACRO EXAMPLES). Macros may refer to - other macros, but only to their own parameters [1]. + ( field q1 q2 ... qn ) + Restrict the queries q1 to qn to field, and combine with and (for + most fields) or or. See FIELDS for more information. + + ( operator q1 q2 ... qn ) + Combine queries q1 to qn. Currently supported operators are and, or, + and not. (not q1 ... qn ) is equivalent to (and (not q1 ) ... (not + qn )). + + ( modifier q1 q2 ... qn ) + Combine queries q1 to qn, and reinterpret the result (e.g. as a reg‐ + ular expression). See MODIFIERS for more information. + + (macro ( p1 ... pn ) body) + Define saved query with parameter substitution. The syntax is recog‐ + nized only in saved s-expression queries (see squery.* in not‐ + much-config(1)). Parameter names in body must be prefixed with , to + be expanded (see MACRO EXAMPLES). Macros may refer to other macros, + but only to their own parameters [1].

  FIELDS

@@ -137,7 +139,8 @@ │tag │ and │ term │ yes │ yes │ yes │ ├───────────┼─────────┼────────┼────────┼──────────┼───────┤ │thread │ or │ term │ yes │ yes │ yes │ - ├───────────┼─────────┼────────┼────────┼──────────┼───────┤ + └───────────┴─────────┴────────┴────────┴──────────┴───────┘ + │to │ and │ phrase │ yes │ yes │ no │ └───────────┴─────────┴────────┴────────┴──────────┴───────┘ @@ -148,96 +151,97 @@ that are neither operators nor fields. (infix atom ) - Interpret atom as an infix notmuch query (see not‐ - much-search-terms(7)). Not supported inside fields. + Interpret atom as an infix notmuch query (see not‐ + much-search-terms(7)). Not supported inside fields. - (matching q_1 q_2 ... q_n ) (of q_1 q_2 ... q_n ) - Match all messages have the same values of the current field as - those matching all of q_1 ... q_n. Supported in most term [7] or - phrase fields. Most commonly used in the thread field. + (matching q1 q2 ... qn ) (of q1 q2 ... qn ) + Match all messages have the same values of the current field as + those matching all of q1 ... qn. Supported in most term [7] or + phrase fields. Most commonly used in the thread field. (query atom ) - Expand to the saved query named by atom. See notmuch-config(1) - for more. Note that the saved query must be in infix syntax - (notmuch-search-terms(7)). Not supported inside fields. + Expand to the saved query named by atom. See notmuch-config(1) for + more. Note that the saved query must be in infix syntax (not‐ + much-search-terms(7)). Not supported inside fields. (regex atom ) (rx atom ) - Interpret atom as a POSIX.2 regular expression (see regex(7)). - This applies in term fields and a subset [5] of phrase fields - (see Fields with supported modifiers). + Interpret atom as a POSIX.2 regular expression (see regex(7)). This + applies in term fields and a subset [5] of phrase fields (see Fields + with supported modifiers). (starts-with subword ) - Matches any term starting with subword. This applies in either - phrase or term fields, or outside of fields [6]. Note that a - starts-with query cannot be part of a phrase. The atom * is a - synonym for (starts-with ""). + Matches any term starting with subword. This applies in either + phrase or term fields, or outside of fields [6]. Note that a + starts-with query cannot be part of a phrase. The atom * is a syn‐ + onym for (starts-with "").

EXAMPLES

-       Wizard Match all messages containing the word "wizard", ignoring case.
+       Wizard
+          Match all messages containing the word "wizard", ignoring case.
 
-       added  Match all messages containing "added", but also those containing
-              "add", "additional", "Additional", "adds", etc... via stemming.
+       added
+          Match all messages containing "added",  but  also  those  containing
+          "add", "additional", "Additional", "adds", etc... via stemming.
 
        (and Bob Marley)
-              Match  messages  containing  words  "Bob" and "Marley", or their
-              stems The words need not be adjacent.
+          Match  messages  containing words "Bob" and "Marley", or their stems
+          The words need not be adjacent.
 
        (not Bob Marley)
-              Match messages containing neither "Bob" nor "Marley", nor  their
-              stems,
+          Match messages containing neither  "Bob"  nor  "Marley",  nor  their
+          stems,
 
        "quick fox" quick-fox quick@fox
-              Match  the phrase "quick" followed by "fox" in phrase fields (or
-              outside a field). Match the literal string in a term field.
+          Match the phrase "quick" followed by "fox" in phrase fields (or out‐
+          side a field). Match the literal string in a term field.
 
        (folder (of (id 1234@invalid)))
-              Match any message in the same folder as the one with  Message-Id
-              "1234@invalid"
+          Match any message in the same folder as the one with  Message-Id  "‐
+          1234@invalid"
 
        (id 1234@invalid blah@test)
-              Matches Message-Id "1234@invalid" or Message-Id "blah@test"
+          Matches Message-Id "1234@invalid" or Message-Id "blah@test"
 
-       (and (infix date:2009-11-18..2009-11-18 ) (tag unread))
-              Match messages in the given date range with tag unread.
+       (and (infix "date:2009-11-18..2009-11-18") (tag unread))
+          Match messages in the given date range with tag unread.
 
        (starts-with prelim)
-              Match any words starting with "prelim".
+          Match any words starting with "prelim".
 
-       (subject quick brown fox )
-              Match   messages   whose  subject  contains  "quick"  (anywhere,
-              stemmed) and the phrase "brown fox".
+       (subject quick "brown fox")
+          Match  messages  whose  subject contains "quick" (anywhere, stemmed)
+          and the phrase "brown fox".
 
        (subject (starts-with prelim))
-              Matches any word starting with "prelim", inside a  message  sub‐
-              ject.
+          Matches any word starting with "prelim", inside a message subject.
 
-       (subject (starts-wih quick) brown fox )
-              Match  messages  whose  subject  contains "quick brown fox", but
-              also "brown fox quicksand".
+       (subject (starts-wih quick) "brown fox")
+          Match messages whose subject contains "quick brown  fox",  but  also
+          "brown fox quicksand".
 
        (thread (of (id 1234@invalid)))
-              Match any message in the same thread as the one with  Message-Id
-              "1234@invalid"
+          Match  any  message in the same thread as the one with Message-Id "‐
+          1234@invalid"
 
        (thread (matching (from bob@example.com) (to bob@example.com)))
-              Match  any  (messages  in) a thread containing a message from "‐
-              bob@example.com" and a (possibly distinct) message  to  "bob  at
-              example.com")
+          Match any (messages in)  a  thread  containing  a  message  from  "‐
+          bob@example.com"  and a (possibly distinct) message to "bob at exam‐
+          ple.com")
 
-       (to  (or bob@example.com mallory@example.org)) (or (to bob@example.com)
+       (to (or bob@example.com mallory@example.org)) (or (to  bob@example.com)
        (to mallory@example.org))
-              Match  in  the  "To"  or  "Cc"  headers,  "bob@example.com",  "‐
-              mallory@example.org",  and  also  "bob@example.com.au"  since it
-              contains the adjacent triple "bob", "example", "com".
+          Match   in   the   "To"   or  "Cc"  headers,  "bob@example.com",  "‐
+          mallory@example.org", and also "bob@example.com.au"  since  it  con‐
+          tains the adjacent triple "bob", "example", "com".
 
        (not (to *))
-              Match messages with an empty or invalid 'To' and 'Cc' field.
+          Match messages with an empty or invalid 'To' and 'Cc' field.
 
        (List *)
-              Match messages with a non-empty List-Id header, assuming config‐
-              uration index.header.List=List-Id
+          Match  messages with a non-empty List-Id header, assuming configura‐
+          tion index.header.List=List-Id
 

  MACRO EXAMPLES

@@ -253,7 +257,7 @@ $ notmuch config set squery.Outer '(macro (x y) (and (tag ,x) (Inner ,y)))' $ notmuch search --query=sexp '(Outer inbox maildir)' - Parameters can be re-used to reduce boilerplate. Any field, including + Parameters can be re-used to reduce boilerplate. Any field, including user defined fields is permitted within a macro. $ notmuch config set squery.About '(macro (name) (or (subject ,name) (List ,name)))' @@ -262,7 +266,7 @@

NOTES

-       [1]  Technically macros impliment lazy evaluation  and  lexical  scope.
+       [1]  Technically  macros  impliment  lazy evaluation and lexical scope.
             There is one top level scope containing all macro definitions, but
             all parameter definitions are local to a given macro.
 
@@ -272,13 +276,13 @@
 
        [4]  a.k.a. boolean prefixes
 
-       [5]  Due to the implemention of phrase fields in Xapian, regex  queries
+       [5]  Due  to the implemention of phrase fields in Xapian, regex queries
             could only match individual words.
 
-       [6]  Due  the  the way body is implemented in notmuch, this modifier is
+       [6]  Due the the way body is implemented in notmuch, this  modifier  is
             not supported in the body field.
 
-       [7]  Due to the way recursive path queries are implemented in  notmuch,
+       [7]  Due  to the way recursive path queries are implemented in notmuch,
             this modifier is not supported in the path field.
 
@@ -289,7 +293,7 @@

COPYRIGHT

-       2009-2021, Carl Worth and many others
+       2009-2022, Carl Worth and many others
 
-

0.34

+

0.35