Tags make use of the hierarchical structure of outline trees. If a heading has a certain tag, all subheadings inherit the tag as well. For example, in the list
* Meeting with the French group :work: ** Summary by Frank :boss:notes: *** TODO Prepare slides for him :action:
the final heading has the tags ‘work’, ‘boss’, ‘notes’, and ‘action’ even though the final heading is not explicitly marked with those tags. You can also set tags that all entries in a file should inherit just as if these tags were defined in a hypothetical level zero that surrounds the entire file. Use a line like this50
#+FILETAGS: :Peter:Boss:Secret:
To limit tag inheritance to specific tags, or to turn it off entirely,
use the variables org-use-tag-inheritance
and
org-tags-exclude-from-inheritance
.
When a headline matches during a tags search while tag inheritance is
turned on, all the sublevels in the same tree—for a simple match
form—match as well51. The list of matches may then become very long. If you
only want to see the first tags match in a subtree, configure the
variable org-tags-match-list-sublevels
(not recommended).
Tag inheritance is relevant when the agenda search tries to match
a tag, either in the tags
or tags-todo
agenda types. In other
agenda types, org-use-tag-inheritance
has no effect. Still, you may
want to have your tags correctly set in the agenda, so that tag
filtering works fine, with inherited tags. Set
org-agenda-use-tag-inheritance
to control this: the default value
includes all agenda types, but setting this to nil
can really speed
up agenda generation.
As with all these in-buffer settings, pressing C-c C-c activates any changes in the line.
This is only true if the search does not involve more complex tests including properties (see Property Searches).