Tags make use of the hierarchical structure of outline trees. If a heading has a certain tag, all subheadings will 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 will have the tags ‘:work:’, ‘:boss:’, ‘:notes:’, and ‘:action:’ even though the final heading is not explicitly marked with all 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 this57:
To limit tag inheritance to specific tags, use
To turn it off entirely, use
When a headline matches during a tags search while tag inheritance is turned
on, all the sublevels in the same tree will (for a simple match form) match
as well58. The list
of matches may then become very long. If you only want to see the first tags
match in a subtree, configure
Tag inheritance is relevant when the agenda search tries to match a tag,
either in the
tags-todo agenda types. In other agenda
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
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).