[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
29. Indentation
This chapter describes the Emacs commands that add, remove, or adjust indentation.
- <TAB>
Indent the current line “appropriately” in a mode-dependent fashion.
- C-j
Perform <RET> followed by <TAB> (
newline-and-indent
).- M-^
Merge the previous and the current line (
delete-indentation
). This would cancel the effect of a preceding C-j.- C-M-o
Split the current line at point; text on the line after point becomes a new line indented to the same column where point is located (
split-line
).- M-m
Move (forward or back) to the first nonblank character on the current line (
back-to-indentation
).- C-M-\
Indent lines in the region to the same column (
indent-region
).- C-x <TAB>
Shift lines in the region rigidly right or left (
indent-rigidly
).- M-i
Indent from point to the next prespecified tab stop column (
tab-to-tab-stop
).- M-x indent-relative
Indent from point to under an indentation point in the previous line.
Emacs supports four general categories of operations that could all be called `indentation':
-
Insert a tab character. You can type C-q <TAB> to do this.
A tab character is displayed as a stretch of whitespace which extends to the next display tab stop position, and the default width of a tab stop is eight. See section How Text Is Displayed, for more details.
- Insert whitespace up to the next tab stop. You can set tab stops at your choice of column positions, then type M-i to advance to the next tab stop. The default tab stop settings have a tab stop every eight columns, which means by default M-i inserts a tab character. To set the tab stops, use M-x edit-tab-stops.
-
Align a line with the previous line. More precisely, the command
M-x indent-relative indents the current line under the beginning
of some word in the previous line. In Fundamental mode and in Text
mode, <TAB> runs the command
indent-relative
. -
The most sophisticated method is syntax-driven indentation.
Most programming languages have an indentation convention. For Lisp
code, lines are indented according to their nesting in parentheses. C
code uses the same general idea, but many details are different.
Type <TAB> to do syntax-driven indentation, in a mode that supports it. It realigns the current line according with the syntax of the preceding lines. No matter where in the line you are when you type <TAB>, it aligns the line as a whole.
Normally, most of the above methods insert an optimal mix of tabs and spaces to align to the desired column. See section Tabs vs. Spaces, for how to disable use of tabs. However, C-q <TAB> always inserts a tab, even when tabs are disabled for the indentation commands.
29.1 Indentation Commands and Techniques | Various commands and techniques for indentation. | |
29.2 Tab Stops | You can set arbitrary "tab stops" and then indent to the next tab stop when you want to. | |
29.3 Tabs vs. Spaces | You can request indentation using just spaces. |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |