24.11. Hideshow minor mode

Hideshow minor mode provides selective display of portions of a file, known as blocks. You can use M-x hs-minor-mode to enable or disable this mode, or add hs-minor-mode to the mode hook for certain major modes in order to enable it automatically for those modes.

Just what constitutes a block depends on the major mode. In C mode or C++ mode, they are delimited by braces, while in Lisp mode and similar modes they are delimited by parentheses. Multi-line comments also count as blocks.

C-c C-h

Hide the current block (hs-hide-block).

C-c C-s

Show the current block (hs-show-block).

C-c C-c

Either hide or show the current block (hs-toggle-hiding)

S-Mouse-2

Either hide or show the block you click on (hs-mouse-toggle-hiding)

C-c C-M-h

Hide all top-level blocks (hs-hide-all).

C-c C-M-s

Show everything in the buffer (hs-show-all).

C-c C-l

Hide all blocks n levels below this block (hs-hide-level).

These user options exist for customizing Hideshow mode.

hs-hide-comments-when-hiding-all

Non-nil says that hs-hide-all should hide comments too.

hs-show-hidden-short-form

Non-nil says to omit the last line in a form (saving screen space).

hs-isearch-open

Specifies what kind of hidden blocks to open in Isearch mode.

hs-special-modes-alist

Specifies Initializes Hideshow variables for different modes.