org: Tag groups
6.3 Tag groups
==============
In a set of mutually exclusive tags, the first tag can be defined as a
_group tag_. When you search for a group tag, it will return matches
for all members in the group. In an agenda view, filtering by a group
tag will display headlines tagged with at least one of the members of
the group. This makes tag searches and filters even more flexible.
You can set group tags by inserting a colon between the group tag and
other tags—beware that all whitespaces are mandatory so that Org can
parse this line correctly:
#+TAGS: { @read : @read_book @read_ebook }
In this example, ‘@read’ is a _group tag_ for a set of three tags:
‘@read’, ‘@read_book’ and ‘@read_ebook’.
You can also use the ‘:grouptags’ keyword directly when setting
‘org-tag-alist’:
(setq org-tag-alist '((:startgroup . nil)
("@read" . nil)
(:grouptags . nil)
("@read_book" . nil)
("@read_ebook" . nil)
(:endgroup . nil)))
You cannot nest group tags or use a group tag as a tag in another
group.
If you want to ignore group tags temporarily, toggle group tags
support with ‘org-toggle-tags-groups’, bound to ‘C-c C-x q’. If you
want to disable tag groups completely, set ‘org-group-tags’ to ‘nil’.