GNU Emacs Manual - Outline Visibility

Go to the first, previous, next, last section, table of contents.

### Outline Visibility Commands

The other special commands of outline mode are used to make lines visible or invisible. Their names all start with `hide` or `show`. Most of them fall into pairs of opposites. They are not undoable; instead, you can undo right past them. Making lines visible or invisible is simply not recorded by the undo mechanism.

`C-c C-t`
  Make all body lines in the buffer invisible (`hide-body`).
`C-c C-a`
  Make all lines in the buffer visible (`show-all`).
`C-c C-d`
  Make everything under this heading invisible, not including this heading itself (`hide-subtree`).
`C-c C-s`
  Make everything under this heading visible, including body, subheadings, and their bodies (`show-subtree`).
`C-c C-l`
  Make the body of this heading line, and of all its subheadings, invisible (`hide-leaves`).
`C-c C-k`
  Make all subheadings of this heading line, at all levels, visible (`show-branches`).
`C-c C-i`
  Make immediate subheadings (one level down) of this heading line visible (`show-children`).
`C-c C-c`
  Make this heading line's body invisible (`hide-entry`).
`C-c C-e`
  Make this heading line's body visible (`show-entry`).
`C-c C-q`
  Hide everything except the top n levels of heading lines (`hide-sublevels`).
`C-c C-o`
  Hide everything except for the heading or body that point is in, plus the headings leading up from there to the top level of the outline (`hide-other`).

Two commands that are exact opposites are `C-c C-c` (`hide-entry`) and `C-c C-e` (`show-entry`). They are used with point on a heading line, and apply only to the body lines of that heading. Subheadings and their bodies are not affected.

Two more powerful opposites are `C-c C-d` (`hide-subtree`) and `C-c C-s` (`show-subtree`). Both expect to be used when point is on a heading line, and both apply to all the lines of that heading's subtree: its body, all its subheadings, both direct and indirect, and all of their bodies. In other words, the subtree contains everything following this heading line, up to and not including the next heading of the same or higher rank.

Intermediate between a visible subtree and an invisible one is having all the subheadings visible but none of the body. There are two commands for doing this, depending on whether you want to hide the bodies or make the subheadings visible. They are `C-c C-l` (`hide-leaves`) and `C-c C-k` (`show-branches`).

A little weaker than `show-branches` is `C-c C-i` (`show-children`). It makes just the direct subheadings visible--those one level down. Deeper subheadings remain invisible, if they were invisible.

Two commands have a blanket effect on the whole file. `C-c C-t` (`hide-body`) makes all body lines invisible, so that you see just the outline structure. `C-c C-a` (`show-all`) makes all lines visible. These commands can be thought of as a pair of opposites even though `C-c C-a` applies to more than just body lines.

The command `C-c C-q` (`hide-sublevels`) hides all but the top level headings. With a numeric argument n, it hides everything except the top n levels of heading lines.

The command `C-c C-o` (`hide-other`) hides everything except the heading or body text that point is in, plus its parents (the headers leading up from there to top level in the outline).

You can turn off the use of ellipses at the ends of visible lines by setting `selective-display-ellipses` to `nil`. Then there is no visible indication of the presence of invisible lines.

When incremental search finds text that is hidden by Outline mode, it makes that part of the buffer visible. If you exit the search at that position, the text remains visible.

Go to the first, previous, next, last section, table of contents.