Next: Custom C Indent, Previous: Lisp Indent, Up: Program Indent [Contents][Index]

#### 26.3.4 Commands for C Indentation

Here are special features 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 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 or a string.

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.