@c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
+@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Basic
@chapter Basic Editing Commands
@xref{Point}.
@kindex RET
+@kindex C-j
@cindex newline
+@c @findex electric-indent-just-newline
To end a line and start a new one, type @key{RET} (@code{newline}).
(The @key{RET} key may be labeled @key{Return} or @key{Enter} on your
keyboard, but we refer to it as @key{RET} in this manual.) This
-command inserts a newline character into the buffer. If point is at
-the end of the line, the effect is to create a new blank line after
-it; if point is in the middle of a line, the line is split at that
-position.
+command inserts a newline character into the buffer, then indents
+(@pxref{Indentation}) according to the major mode. If point is at the end
+of the line, the effect is to create a new blank line after it and
+indent the new line; if point is in the middle of a line, the line is
+split at that position. To turn off the auto-indentation, you can
+either disable Electric Indent mode (@pxref{Indent Convenience}) or
+type @kbd{C-j}, which inserts just a newline, without any
+auto-indentation.
As we explain later in this manual, you can change the way Emacs
handles text insertion by turning on @dfn{minor modes}. For instance,
@findex quoted-insert
Only graphic characters can be inserted by typing the associated
key; other keys act as editing commands and do not insert themselves.
-For instance, @kbd{DEL} runs the command @code{delete-backward-char}
+For instance, @key{DEL} runs the command @code{delete-backward-char}
by default (some modes bind it to a different command); it does not
insert a literal @samp{DEL} character (@acronym{ASCII} character code
127).
of a character, using the minibuffer. If you enter a name, the
command provides completion (@pxref{Completion}). If you enter a
code-point, it should be as a hexadecimal number (the convention for
-Unicode), or a number with a specified radix, e.g.@: @code{#o23072}
+Unicode), or a number with a specified radix, e.g., @code{#o23072}
(octal); @xref{Integer Basics,,, elisp, The Emacs Lisp Reference
Manual}. The command then inserts the corresponding character into
the buffer. For example, both of the following insert the infinity
point (@pxref{Point}). The keyboard commands @kbd{C-f}, @kbd{C-b},
@kbd{C-n}, and @kbd{C-p} move point to the right, left, down, and up,
respectively. You can also move point using the @dfn{arrow keys}
-present on most keyboards: @kbd{@key{right}}, @kbd{@key{left}},
-@kbd{@key{down}}, and @kbd{@key{up}}; however, many Emacs users find
+present on most keyboards: @key{RIGHT}, @key{LEFT},
+@key{DOWN}, and @key{UP}; however, many Emacs users find
that it is slower to use the arrow keys than the control keys, because
you need to move your hand to the area of the keyboard where those
keys are located.
@findex forward-char
Move forward one character (@code{forward-char}).
-@item @key{right}
+@item @key{RIGHT}
@kindex RIGHT
@findex right-char
+@vindex visual-order-cursor-movement
+@cindex cursor, visual-order motion
This command (@code{right-char}) behaves like @kbd{C-f}, with one
exception: when editing right-to-left scripts such as Arabic, it
instead moves @emph{backward} if the current paragraph is a
-right-to-left paragraph. @xref{Bidirectional Editing}.
+right-to-left paragraph. @xref{Bidirectional Editing}. If
+@code{visual-order-cursor-movement} is non-@code{nil}, this command
+moves to the character that is to the right of the current screen
+position, moving to the next or previous screen line as appropriate.
+Note that this might potentially move point many buffer positions
+away, depending on the surrounding bidirectional context.
@item C-b
@kindex C-b
@findex backward-char
Move backward one character (@code{backward-char}).
-@item @key{left}
+@item @key{LEFT}
@kindex LEFT
@findex left-char
This command (@code{left-char}) behaves like @kbd{C-b}, except it
moves @emph{forward} if the current paragraph is right-to-left.
-@xref{Bidirectional Editing}.
+@xref{Bidirectional Editing}. If @code{visual-order-cursor-movement}
+is non-@code{nil}, this command moves to the character that is to the
+left of the current screen position, moving to the previous or next
+screen line as appropriate.
@item C-n
-@itemx @key{down}
+@itemx @key{DOWN}
@kindex C-n
@kindex DOWN
@findex next-line
middle of one line, you move to the middle of the next.
@item C-p
-@itemx @key{up}
+@itemx @key{UP}
@kindex C-p
@kindex UP
@findex previous-line
@findex forward-word
Move forward one word (@code{forward-word}).
-@item C-@key{right}
-@itemx M-@key{right}
+@item C-@key{RIGHT}
+@itemx M-@key{RIGHT}
@kindex C-RIGHT
@kindex M-RIGHT
@findex right-word
@findex backward-word
Move backward one word (@code{backward-word}).
-@item C-@key{left}
-@itemx M-@key{left}
+@item C-@key{LEFT}
+@itemx M-@key{LEFT}
@kindex C-LEFT
@kindex M-LEFT
@findex left-word
-This command (@code{left-word}) behaves like @kbd{M-f}, except it
+This command (@code{left-word}) behaves like @kbd{M-b}, except it
moves @emph{forward} by one word if the current paragraph is
right-to-left. @xref{Bidirectional Editing}.
@table @kbd
@item @key{DEL}
-@itemx @key{Backspace}
+@itemx @key{BACKSPACE}
Delete the character before point, or the region if it is active
(@code{delete-backward-char}).
If, however, the region is active, @kbd{@key{DEL}} instead deletes
the text in the region. @xref{Mark}, for a description of the region.
- On most keyboards, @key{DEL} is labeled @key{Backspace}, but we
+ On most keyboards, @key{DEL} is labeled @key{BACKSPACE}, but we
refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL}
with the @key{Delete} key; we will discuss @key{Delete} momentarily.)
On some text terminals, Emacs may not recognize the @key{DEL} key
properly. @xref{DEL Does Not Delete}, if you encounter this problem.
- The @key{delete} (@code{delete-forward-char}) command deletes in the
-``opposite direction'': it deletes the character after point, i.e. the
+ The @key{Delete} (@code{delete-forward-char}) command deletes in the
+``opposite direction'': it deletes the character after point, i.e., the
character under the cursor. If point was at the end of a line, this
joins the following line onto this one. Like @kbd{@key{DEL}}, it
deletes the text in the region if the region is active (@pxref{Mark}).
@kbd{C-d} (@code{delete-char}) deletes the character after point,
-similar to @key{delete}, but regardless of whether the region is
+similar to @key{Delete}, but regardless of whether the region is
active.
@xref{Deletion}, for more detailed information about the above
moves down five lines. The keys @kbd{M-1}, @kbd{M-2}, and so on, as
well as @kbd{M--}, are bound to commands (@code{digit-argument} and
@code{negative-argument}) that set up an argument for the next
-command. @kbd{Meta--} without digits normally means @minus{}1.
+command. @kbd{M--} without digits normally means @minus{}1.
If you enter more than one digit, you need not hold down the
@key{META} key for the second and subsequent digits. Thus, to move
value. For example, the command @kbd{M-q} (@code{fill-paragraph})
fills text; with an argument, it justifies the text as well.
(@xref{Filling}, for more information on @kbd{M-q}.) For these
-commands, it is enough to the argument with a single @kbd{C-u}.
+commands, it is enough to specify the argument with a single
+@kbd{C-u}.
Some commands use the value of the argument as a repeat count, but
do something special when there is no argument. For example, the
more convenient, and they are documented in that command's
documentation string.
- We use the term ``prefix argument'' as well as ``numeric argument'',
-to emphasize that you type these argument before the command, and to
-distinguish them from minibuffer arguments that come after the
-command.
+ We use the term @dfn{prefix argument} to emphasize that you type
+such arguments before the command, and to distinguish them from
+minibuffer arguments (@pxref{Minibuffer}), which are entered after
+invoking the command.
@node Repeating
@section Repeating a Command