2.2.1 Global and local cycling

Outlines make it possible to hide parts of the text in the buffer. Org uses just two commands, bound to TAB and S-TAB to change the visibility in the buffer.

TAB (org-cycle)

Subtree cycling: Rotate current subtree among the states


Point must be on a headline for this to work4.

S-TAB (org-global-cycle)

Global cycling: Rotate the entire buffer among the states


When S-TAB is called with a numeric prefix argument N, view contents only up to headlines of level N.

Note that inside tables (see Tables), S-TAB jumps to the previous field instead.

You can run global cycling using TAB only if point is at the very beginning of the buffer, but not on a headline, and org-cycle-global-at-bob is set to a non-nil value.

C-u C-u TAB (org-set-startup-visibility)

Switch back to the startup visibility of the buffer (see Initial visibility).

C-u C-u C-u TAB (org-show-all)

Show all, including drawers.

C-c C-r (org-reveal)

Reveal context around point, showing the current entry, the following heading and the hierarchy above. It is useful for working near a location that has been exposed by a sparse tree command (see Sparse Trees) or an agenda command (see Commands in the Agenda Buffer). With a prefix argument, show, on each level, all sibling headings. With a double prefix argument, also show the entire subtree of the parent.

C-c C-k (org-show-branches)

Expose all the headings of the subtree, but not their bodies.

C-c TAB (org-show-children)

Expose all direct children of the subtree. With a numeric prefix argument N, expose all children down to level N.

C-c C-x b (org-tree-to-indirect-buffer)

Show the current subtree in an indirect buffer5. With a numeric prefix argument N, go up to level N and then take that tree. If N is negative then go up that many levels. With a C-u prefix, do not remove the previously used indirect buffer.

C-c C-x v (org-copy-visible)

Copy the visible text in the region into the kill ring.



See, however, the option org-cycle-emulate-tab.


The indirect buffer contains the entire buffer, but is narrowed to the current tree. Editing the indirect buffer also changes the original buffer, but without affecting visibility in that buffer. For more information about indirect buffers, see (emacs)GNU Emacs Manual.