rm not definition
[bpt/emacs.git] / doc / emacs / basic.texi
index abb6598..bec7774 100644 (file)
@@ -1,8 +1,8 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2014 Free Software
+@c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
-@node Basic, Minibuffer, Exiting, Top
+@node Basic
 @chapter Basic Editing Commands
 
 @kindex C-h t
@@ -40,14 +40,20 @@ forward, so that point remains just after the inserted text.
 @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,
@@ -61,7 +67,7 @@ instead of shoving it to the right.  @xref{Minor Modes}.
 @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).
@@ -97,28 +103,29 @@ To use decimal or hexadecimal instead of octal, set the variable
 the letters @kbd{a} to @kbd{f} serve as part of a character code,
 just like digits.  Case is ignored.
 
-@findex ucs-insert
+@findex insert-char
 @kindex C-x 8 RET
 @cindex Unicode characters, inserting
 @cindex insert Unicode character
 @cindex characters, inserting by name or code-point
-  Instead of @kbd{C-q}, you can use the command @kbd{C-x 8 @key{RET}}
-(@code{ucs-insert}).  This prompts for the Unicode name or code-point
+  Alternatively, you can use the command @kbd{C-x 8 @key{RET}}
+(@code{insert-char}).  This prompts for the Unicode name or code-point
 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 a hexadecimal number (which is the convention
-for Unicode).  The command then inserts the corresponding character
-into the buffer.  For example, both of the following insert the
-infinity sign (Unicode code-point @code{U+221E}):
+code-point, it should be as a hexadecimal number (the convention for
+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
+sign (Unicode code-point @code{U+221E}):
 
 @example
 @kbd{C-x 8 @key{RET} infinity @key{RET}}
 @kbd{C-x 8 @key{RET} 221e @key{RET}}
 @end example
 
-  A numeric argument to either @kbd{C-q} or @kbd{C-x 8 @key{RET}}
-specifies how many copies of the character to insert
-(@pxref{Arguments}).
+  A numeric argument to @kbd{C-q} or @kbd{C-x 8 @key{RET}} specifies
+how many copies of the character to insert (@pxref{Arguments}).
 
 @node Moving Point
 @section Changing the Location of Point
@@ -130,11 +137,13 @@ specifies how many copies of the character to insert
 @cindex moving the cursor
   To do more than insert characters, you have to know how to move
 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, up and down
+@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
-that it is slower to use the arrow keys than the control keys.
+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.
 
   You can also click the left mouse button to move point to the
 position clicked.  Emacs also provides a variety of additional
@@ -147,28 +156,38 @@ keyboard commands that move point in more sophisticated ways.
 @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
@@ -177,7 +196,7 @@ to keep the horizontal position unchanged, so if you start in the
 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
@@ -203,8 +222,8 @@ Move to the end of the line (@code{move-end-of-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
@@ -217,12 +236,12 @@ right-to-left.  @xref{Bidirectional Editing}.
 @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}.
 
@@ -264,7 +283,8 @@ necessary (@code{scroll-up-command}).  @xref{Scrolling}.
 Scroll one screen backward, and move point onscreen if necessary
 (@code{scroll-down-command}).  @xref{Scrolling}.
 
-@item M-x goto-char
+@item M-g c
+@kindex M-g c
 @findex goto-char
 Read a number @var{n} and move point to buffer position @var{n}.
 Position 1 is the beginning of the buffer.
@@ -282,6 +302,13 @@ also specify @var{n} by giving @kbd{M-g M-g} a numeric prefix argument.
 @xref{Select Buffer}, for the behavior of @kbd{M-g M-g} when you give it
 a plain prefix argument.
 
+@item M-g @key{TAB}
+@kindex M-g TAB
+@findex move-to-column
+Read a number @var{n} and move to column @var{n} in the current line.
+Column 0 is the leftmost column.  If called with a prefix argument,
+move to the column number specified by the argument's numeric value.
+
 @item C-x C-n
 @kindex C-x C-n
 @findex set-goal-column
@@ -339,11 +366,11 @@ moves down into it.
 
 @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}).
 
-@itemx @key{Delete}
+@item @key{Delete}
 Delete the character after point, or the region if it is active
 (@code{delete-forward-char}).
 
@@ -367,20 +394,20 @@ the preceding newline, joining this line to the previous one.
   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-only terminals, Emacs may not recognize the @key{DEL} key
+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
@@ -401,7 +428,8 @@ commands.
 @item C-/
 Undo one entry of the undo records---usually, one command worth
 (@code{undo}).
-@itemx C-x u
+
+@item C-x u
 @itemx C-_
 The same.
 @end table
@@ -528,7 +556,7 @@ too long to fit in the window, and Emacs displays it as two or more
 @dfn{continuation}, and the long logical line is called a
 @dfn{continued line}.  On a graphical display, Emacs indicates line
 wrapping with small bent arrows in the left and right window fringes.
-On a text-only terminal, Emacs indicates line wrapping by displaying a
+On a text terminal, Emacs indicates line wrapping by displaying a
 @samp{\} character at the right margin.
 
   Most commands that act on lines act on logical lines, not screen
@@ -543,9 +571,9 @@ and up, respectively, by one screen line (@pxref{Moving Point}).
 continuing them.  This means that every logical line occupies a single
 screen line; if it is longer than the width of the window, the rest of
 the line is not displayed.  On a graphical display, a truncated line
-is indicated by a small straight arrow in the right fringe; on a
-text-only terminal, it is indicated by a @samp{$} character in the
-right margin.  @xref{Line Truncation}.
+is indicated by a small straight arrow in the right fringe; on a text
+terminal, it is indicated by a @samp{$} character in the right margin.
+@xref{Line Truncation}.
 
   By default, continued lines are wrapped at the right window edge.
 Since the wrapping may occur in the middle of a word, continued lines
@@ -615,12 +643,16 @@ narrowed region and the line number relative to the whole buffer.
 
 @kindex M-=
 @findex count-words-region
-@findex count-words
   @kbd{M-=} (@code{count-words-region}) displays a message reporting
-the number of lines, words, and characters in the region.  @kbd{M-x
-count-words} displays a similar message for the entire buffer, or for
-the region if the region is @dfn{active}.  @xref{Mark}, for an
-explanation of the region.
+the number of lines, words, and characters in the region
+(@pxref{Mark}, for an explanation of the region).  With a prefix
+argument, @kbd{C-u M-=}, the command displays a count for the entire
+buffer.
+
+@findex count-words
+  The command @kbd{M-x count-words} does the same job, but with a
+different calling convention.  It displays a count for the region if
+the region is active, and for the buffer otherwise.
 
 @kindex C-x =
 @findex what-cursor-position
@@ -666,7 +698,7 @@ those two positions are the accessible ones.  @xref{Narrowing}.
 @cindex arguments to commands
 
   In the terminology of mathematics and computing, @dfn{argument}
-means ``data provided to a function or operation.''  You can give any
+means ``data provided to a function or operation''.  You can give any
 Emacs command a @dfn{numeric argument} (also called a @dfn{prefix
 argument}).  Some commands interpret the argument as a repetition
 count.  For example, giving @kbd{C-f} an argument of ten causes it to
@@ -691,7 +723,7 @@ M-5 C-n
 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
@@ -741,7 +773,8 @@ the character @samp{1}.
 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
@@ -760,10 +793,10 @@ described when they come up; they exist to make an individual command
 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