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 ‘
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 this1
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 well2. 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-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.