X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=man%2Fman1%2Fnotmuch-tag.1;h=c8685ea41a5feca8b166f479a814777e37bd2ca5;hp=17e031030282ccf2c40db676f16c04055603426e;hb=80b25792b2fdbb7f495556db360148798e224930;hpb=df96c93239b6e92e19f22f7759e7d1595c3fdcdd diff --git a/man/man1/notmuch-tag.1 b/man/man1/notmuch-tag.1 index 17e03103..c8685ea4 100644 --- a/man/man1/notmuch-tag.1 +++ b/man/man1/notmuch-tag.1 @@ -1,23 +1,29 @@ -.TH NOTMUCH-TAG 1 2012-05-25 "Notmuch 0.13.1" +.TH NOTMUCH-TAG 1 2013-07-28 "Notmuch 0.16" .SH NAME -notmuch-tag \- Add/remove tags for all messages matching the search terms. +notmuch-tag \- add/remove tags for all messages matching the search terms .SH SYNOPSIS .B notmuch tag -.RI "+<" tag> "|\-<" tag "> [...] [\-\-] <" search-term ">..." +.RI [ options "...] +<" tag ">|\-<" tag "> [...] [\-\-] <" search-term "> [...]" + +.B notmuch tag +.RI "--batch" +.RI "[ --input=<" filename "> ]" + .SH DESCRIPTION Add/remove tags for all messages matching the search terms. See \fBnotmuch-search-terms\fR(7) -for details of the supported syntax for . +for details of the supported syntax for +.RI < search-term >. Tags prefixed by '+' are added while those prefixed by '\-' are -removed. For each message, tag removal is performed before tag -addition. +removed. For each message, tag changes are applied in the order they +appear on the command line. -The beginning of is recognized by the first +The beginning of the search terms is recognized by the first argument that begins with neither '+' nor '\-'. Support for an initial search term beginning with '+' or '\-' is provided by allowing the user to specify a "\-\-" argument to separate @@ -29,10 +35,108 @@ updates the maildir flags according to tag changes if the configuration option is enabled. See \fBnotmuch-config\fR(1) for details. +Supported options for +.B tag +include +.RS 4 +.TP 4 +.BR \-\-remove\-all + +Remove all tags from each message matching the search terms before +applying the tag changes appearing on the command line. This means +setting the tags of each message to the tags to be added. If there are +no tags to be added, the messages will have no tags. +.RE + +.RS 4 +.TP 4 +.BR \-\-batch + +Read batch tagging operations from a file (stdin by default). This is more +efficient than repeated +.B notmuch tag +invocations. See +.B TAG FILE FORMAT +below for the input format. This option is not compatible with +specifying tagging on the command line. +.RE + +.RS 4 +.TP 4 +.BR "\-\-input=" + +Read input from given file, instead of from stdin. Implies +.BR --batch . + +.SH TAG FILE FORMAT + +The input must consist of lines of the format: + +.RI "+<" tag ">|\-<" tag "> [...] [\-\-] <" query ">" + +Each line is interpreted similarly to +.B notmuch tag +command line arguments. The delimiter is one or more spaces ' '. Any +characters in +.RI < tag > +.B may +be hex-encoded with %NN where NN is the hexadecimal value of the +character. To hex-encode a character with a multi-byte UTF-8 encoding, +hex-encode each byte. +Any spaces in +.B must +be hex-encoded as %20. Any characters that are not +part of +.RI < tag > +.B must not +be hex-encoded. + +In the future tag:"tag with spaces" style quoting may be supported for +.RI < tag > +as well; +for this reason all double quote characters in +.RI < tag > +.B should +be hex-encoded. + +The +.RI < query > +should be quoted using Xapian boolean term quoting rules: if a term +contains whitespace or a close paren or starts with a double quote, it +must be enclosed in double quotes (not including any prefix) and +double quotes inside the term must be doubled (see below for +examples). + +Leading and trailing space ' ' is ignored. Empty lines and lines +beginning with '#' are ignored. + +.SS EXAMPLE + +The following shows a valid input to batch tagging. Note that only the +isolated '*' acts as a wildcard. Also note the two different quotings +of the tag +.B space in tags +. +.RS +.nf ++winner * ++foo::bar%25 -- (One and Two) or (One and tag:winner) ++found::it -- tag:foo::bar% +# ignore this line and the next + ++space%20in%20tags -- Two +# add tag '(tags)', among other stunts. ++crazy{ +(tags) +&are +#possible\ -- tag:"space in tags" ++match*crazy -- tag:crazy{ ++some_tag -- id:"this is ""nauty)""" +.fi +.RE + .SH SEE ALSO \fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1), -\fBnotmuch-dump\fR(1), \fBnotmuch-hooks\fR(5), \fBnotmuch-new\fR(1), +\fBnotmuch-dump\fR(1), \fBnotmuch-hooks\fR(5), +\fBnotmuch-insert\fR(1), \fBnotmuch-new\fR(1), \fBnotmuch-reply\fR(1), \fBnotmuch-restore\fR(1), \fBnotmuch-search\fR(1), \fBnotmuch-search-terms\fR(7), \fBnotmuch-show\fR(1),