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.
Hide the current block (hs-hide-block).
Show the current block (hs-show-block).
Either hide or show the current block (hs-toggle-hiding)
Either hide or show the block you click on (hs-mouse-toggle-hiding)
Hide all top-level blocks (hs-hide-all).
Show everything in the buffer (hs-show-all).
Hide all blocks n levels below this block (hs-hide-level).
These user options exist for customizing Hideshow mode.
Non-nil says that hs-hide-all should hide comments too.
Non-nil says to omit the last line in a form (saving screen space).
Specifies what kind of hidden blocks to open in Isearch mode.
Specifies Initializes Hideshow variables for different modes.