Next: Multi-line Indent, Up: Program Indent [Contents][Index]

#### 26.3.1 Basic Program Indentation Commands

`TAB`

  Adjust indentation of current line (`indent-for-tab-command`).

`RET`

  Insert a newline, then adjust indentation of following line (`newline`).

The basic indentation command is `TAB` (`indent-for-tab-command`), which was documented in Indentation. In programming language modes, `TAB` indents the current line, based on the indentation and syntactic content of the preceding lines; if the region is active, `TAB` indents each line within the region, not just the current line.

The command `RET` (`newline`), which was documented in Inserting Text, does the same as `C-j` followed by `TAB`: it inserts a new line, then adjusts the line’s indentation.

When indenting a line that starts within a parenthetical grouping, Emacs usually places the start of the line under the preceding line within the group, or under the text after the parenthesis. If you manually give one of these lines a nonstandard indentation (e.g., for aesthetic purposes), the lines below will follow it.

The indentation commands for most programming language modes assume that a open-parenthesis, open-brace or other opening delimiter at the left margin is the start of a function. If the code you are editing violates this assumption—even if the delimiters occur in strings or comments—you must set `open-paren-in-column-0-is-defun-start` to `nil` for indentation to work properly. See Left Margin Paren.