org.nvim

Match syntax (tags/properties)

Used by the agenda (m, M, custom commands), sparse trees and clocktables. The syntax is Emacs's `org-make-tags-matcher':

  +work-boss            has work and not boss
  work:boss             both tags (: and & are synonyms of +)
  work|home             either tag
  {^proj}               a tag matching a regexp
  LEVEL>1               property comparison: = == <> != /= < <= > >=
  PRIORITY="A"          string comparison; a missing property is ""
  Effort<2              numbers compare like `string-to-number': "1:30"
                        is 1, a missing property is 0
  Effort<*2             starred operators (<* <=* =* >=* >* <>* !=* /=*)
                        only match entries that have the property
  CATEGORY={^work}      regexp match on a property (<>, != and /= negate)
  SCHEDULED<="<+2d>"    date comparison: "<now>", "<today>", "<tomorrow>",
                        "<+2d>", "<-1w>", "<+1m>", "<2026-01-01>"
  +proj/NEXT|TODO       TODO keyword part after /
  +proj/!               only entries that aren't done
  /-DONE                exclude a keyword
  work/{^W}             a regexp in the TODO part

Regexps in {...}' are written in Emacs syntax (\(...\)', \|', +', ?', \{m,n\}', [[:alpha:]]', \<', `\s-', ...), translated to Vim regexps, and ignore case, like Emacs. Text that does not start a new term ends the match, as in Emacs: "work -boss" is the same as "work" (write "work-boss").