org: Sparse trees
2.6 Sparse trees
================
An important feature of Org mode is the ability to construct _sparse
trees_ for selected information in an outline tree, so that the entire
document is folded as much as possible, but the selected information is
made visible along with the headline structure above it(1). Just try it
out and you will see immediately how it works.
Org mode contains several commands creating such trees, all these
commands can be accessed through a dispatcher:
‘C-c /’ (‘org-sparse-tree’)
This prompts for an extra key to select a sparse-tree creating
command.
‘C-c / r’ (‘org-occur’)
Prompts for a regexp and shows a sparse tree with all matches. If
the match is in a headline, the headline is made visible. If the
match is in the body of an entry, headline and body are made
visible. In order to provide minimal context, also the full
hierarchy of headlines above the match is shown, as well as the
headline following the match. Each match is also highlighted; the
highlights disappear when the buffer is changed by an editing
command(2), or by pressing ‘C-c C-c’. When called with a ‘C-u’
prefix argument, previous highlights are kept, so several calls to
this command can be stacked.
‘M-g n’ or ‘M-g M-n’ (‘next-error’)
Jump to the next sparse tree match in this buffer.
‘M-g p’ or ‘M-g M-p’ (‘previous-error’)
Jump to the previous sparse tree match in this buffer.
For frequently used sparse trees of specific search strings, you can use
the option ‘org-agenda-custom-commands’ to define fast keyboard access
to specific sparse trees. These commands will then be accessible
through the agenda dispatcher (Agenda dispatcher). For example:
(setq org-agenda-custom-commands
'(("f" occur-tree "FIXME")))
will define the key ‘C-c a f’ as a shortcut for creating a sparse tree
matching the string ‘FIXME’.
The other sparse tree commands select headings based on TODO
keywords, tags, or properties and will be discussed later in this
manual.
To print a sparse tree, you can use the Emacs command
‘ps-print-buffer-with-faces’ which does not print invisible parts of the
document (3). Or you can use ‘C-c C-e C-v’ to export only the visible
part of the document and print the resulting file.
---------- Footnotes ----------
(1) See also the variables ‘org-show-hierarchy-above’,
‘org-show-following-heading’, ‘org-show-siblings’, and
‘org-show-entry-below’ for detailed control on how much context is shown
around each match.
(2) This depends on the option ‘org-remove-highlights-with-change’
(3) This does not work under XEmacs, because XEmacs uses selective
display for outlining, not text properties.