GNU Emacs Manual - C Indent

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

### 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 section Indenting Several Lines.

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.

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