GNU Emacs Manual. Node: C Indent

PREVLisp Indent UPProgram Indent NEXTCustom C Indent

20.5.4: Commands for C Indentation

Here are the commands for indentation in C mode and related modes:

C-c C-q

Reindent the current top-level function definition or aggregate type declaration (c-indent-defun).

C-M-q

Reindent each line in the balanced expression that follows point (c-indent-exp). A prefix argument inhibits error checking and warning messages about invalid syntax.

TAB

Reindent the current line, and/or in some cases insert a tab character (c-indent-command).

If c-tab-always-indent is t, this command always reindents the current line and does nothing else. This is the default.

If that variable is nil, this command reindents the current line only if point is at the left margin or in the line's indentation; otherwise, it inserts a tab (or the equivalent number of spaces, if indent-tabs-mode is nil).

Any other value (not nil or t) means always reindent the line, and also insert a tab if within a comment, a string, or a preprocessor directive.

C-u TAB

Reindent the current line according to its syntax; also rigidly reindent any other lines of the expression that starts on the current line. See Multi-line Indent.

To reindent the whole current buffer, type C-x h C-M-\. This first selects the whole buffer as the region, then reindents that region.

To reindent the current block, use C-M-u C-M-q. This moves to the front of the block and then reindents it all.

PREVLisp Indent UPProgram Indent NEXTCustom C Indent