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
To limit tag inheritance to specific tags, or to turn it off entirely,
use the variables
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
org-tags-match-list-sublevels (not recommended).
Tag inheritance is relevant when the agenda search tries to match
a tag, either in the
tags-todo agenda types. In other
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).