-@noindent
-The @key{TAB} key runs @code{indent-for-tab-command} in most major
-modes (in C and related modes, @key{TAB} runs a separate command,
-@code{c-indent-line-or-region}, which behaves similarly). The major
-mode determines just what this entails.
-
- In text modes, @key{TAB} inserts some combination of space and tab
-characters to advance point to the next tab stop (@pxref{Tab Stops}).
-If the region is active and spans multiple lines, it advances the
-first character of each of those lines to the next tab stop
-(@pxref{Using Region}). For the purposes of this command, the
-position of the first non-whitespace character on the preceding line
-is treated as an additional tab stop. Thus, you can use @key{TAB} to
-``align'' point with the preceding line.
-
- In programming modes, @key{TAB} adds or removes some combination of
-space and tab characters at the start of the line, in a way that makes
-sense given the text in the preceding lines. If the region is active
-and spans multiple lines, all those lines are indented this way. If
-point was initially within the current line's indentation, it is
-positioned after that indentation; otherwise, it remains at same point
-in the newly-indented text. @xref{Program Indent}.
-
-@vindex tab-width
- Normally, indentation commands insert (or remove) an optimal mix of
-@dfn{tab characters} and spaces to align to the desired column. Tab
-characters (@acronym{ASCII} code 9) are displayed as a stretch of
-empty space extending to the next @dfn{display tab stop}. By default,
-there is one display tab stop every eight columns; the number of
-columns is determined by the variable @code{tab-width}. You can
-insert a single tab character by typing @kbd{C-q @key{TAB}}.
-@xref{Text Display}.
-
-@findex edit-tab-stops
-@findex tab-to-tab-stop
-@kindex M-i
- The command @kbd{M-i} (@code{tab-to-tab-stop}) adjusts the
-whitespace characters around point, inserting just enough whitespace
-to advance point up to the next tab stop. By default, this involves
-deleting the existing whitespace and inserting a single tab character.
-
- @xref{Just Spaces}, for how to disable use of tabs. However,
-@kbd{C-q @key{TAB}} always inserts a tab, even when tabs are disabled
-for the indentation commands.
+ The exact behavior of @key{TAB} depends on the major mode. In Text
+mode and related major modes, @key{TAB} normally inserts some
+combination of space and tab characters to advance point to the next
+tab stop (@pxref{Tab Stops}). For this purpose, the position of the
+first non-whitespace character on the preceding line is treated as an
+additional tab stop, so you can use @key{TAB} to align point with
+the preceding line. If the region is active (@pxref{Using Region}),
+@key{TAB} acts specially: it indents each line in the region so that
+its first non-whitespace character is aligned with the preceding line.
+
+ In programming modes, @key{TAB} indents the current line of code in
+a way that makes sense given the code in the preceding lines. If the
+region is active, all the lines in the region are indented this way.
+If point was initially within the current line's indentation, it is
+repositioned to the first non-whitespace character on the line.