1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3 @c 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
5 @node Basic, Minibuffer, Exiting, Top
6 @chapter Basic Editing Commands
9 @findex help-with-tutorial
10 We now give the basics of how to enter text, make corrections, and
11 save the text in a file. If this material is new to you, you might
12 learn it more easily by running the Emacs learn-by-doing tutorial. To
13 use the tutorial, run Emacs and type @kbd{Control-h t}
14 (@code{help-with-tutorial}).
16 To clear the screen and redisplay, type @kbd{C-l} (@code{recenter}).
20 * Inserting Text:: Inserting text by simply typing it.
21 * Moving Point:: How to move the cursor to the place where you want to
23 * Erasing:: Deleting and killing text.
24 * Basic Undo:: Undoing recent changes in the text.
25 * Files: Basic Files. Visiting, creating, and saving files.
26 * Help: Basic Help. Asking what a character does.
27 * Blank Lines:: Commands to make or delete blank lines.
28 * Continuation Lines:: Lines too wide for the screen.
29 * Position Info:: What page, line, row, or column is point on?
30 * Arguments:: Numeric arguments for repeating a command.
31 * Repeating:: A short-cut for repeating the previous command.
35 @section Inserting Text
38 @cindex graphic characters
39 To insert printing characters into the text you are editing, just type
40 them. This inserts the characters you type into the buffer at the
41 cursor (that is, at @dfn{point}; @pxref{Point}). The cursor moves
42 forward, and any text after the cursor moves forward too. If the text
43 in the buffer is @samp{FOOBAR}, with the cursor before the @samp{B},
44 then if you type @kbd{XX}, you get @samp{FOOXXBAR}, with the cursor
45 still before the @samp{B}.
47 To @dfn{delete} text you have just inserted, use the large key
48 labeled @key{DEL}, @key{BACKSPACE} or @key{DELETE} which is a short
49 distance above the @key{RET} or @key{ENTER} key. This is the key you
50 normally use, outside Emacs, for erasing the last character that you
51 typed. Regardless of the label on that key, Emacs thinks of it as
52 @key{DEL}, and that's what we call it in this manual.
54 The @key{DEL} key deletes the character @emph{before} the cursor.
55 As a consequence, the cursor and all the characters after it move
56 backwards. If you type a printing character and then type @key{DEL},
59 On most computers, Emacs recognizes automatically which key ought to
60 be @key{DEL}, and sets it up that way. But in some cases, especially
61 with text-only terminals, you will need to tell Emacs which key to use
62 for that purpose. If the large key not far above the @key{RET} or
63 @key{ENTER} key doesn't delete backwards, you need to do this.
64 @xref{DEL Does Not Delete}, for an explanation of how.
66 Most PC keyboards have both a @key{BACKSPACE} key not far above
67 @key{RET} or @key{ENTER}, and a @key{DELETE} key elsewhere. On these
68 keyboards, Emacs supports when possible the usual convention that the
69 @key{BACKSPACE} key deletes backwards (it is @key{DEL}), while the
70 @key{DELETE} key deletes ``forwards,'' deleting the character after
71 point, the one underneath the cursor, like @kbd{C-d} (see below).
75 To end a line and start typing a new one, type @key{RET}. This
76 inserts a newline character in the buffer. If point is in the middle of
77 a line, the effect is to split the line. Typing @key{DEL} when the cursor is
78 at the beginning of a line deletes the preceding newline, thus joining
79 the line with the preceding line.
81 Emacs can split lines automatically when they become too long, if you
82 turn on a special minor mode called @dfn{Auto Fill} mode.
83 @xref{Filling}, for how to use Auto Fill mode and other modes for
86 If you prefer to have text characters replace (overwrite) existing
87 text rather than shove it to the right, you can enable Overwrite mode,
88 a minor mode. @xref{Minor Modes}.
93 Direct insertion works for printing characters and @key{SPC}, but other
94 characters act as editing commands and do not insert themselves. If you
95 need to insert a control character or a character whose code is above 200
96 octal, you must @dfn{quote} it by typing the character @kbd{Control-q}
97 (@code{quoted-insert}) first. (This character's name is normally written
98 @kbd{C-q} for short.) There are two ways to use @kbd{C-q}:@refill
102 @kbd{C-q} followed by any non-graphic character (even @kbd{C-g})
103 inserts that character.
106 @kbd{C-q} followed by a sequence of octal digits inserts the character
107 with the specified octal character code. You can use any number of
108 octal digits; any non-digit terminates the sequence. If the
109 terminating character is @key{RET}, it serves only to terminate the
110 sequence. Any other non-digit terminates the sequence and then acts
111 as normal input---thus, @kbd{C-q 1 0 1 B} inserts @samp{AB}.
113 The use of octal sequences is disabled in ordinary non-binary
114 Overwrite mode, to give you a convenient way to insert a digit instead
115 of overwriting with it.
118 @cindex 8-bit character codes
120 When multibyte characters are enabled, if you specify a code in the
121 range 0200 through 0377 octal, @kbd{C-q} assumes that you intend to
122 use some ISO 8859-@var{n} character set, and converts the specified
123 code to the corresponding Emacs character code. @xref{Enabling
124 Multibyte}. You select @emph{which} of the ISO 8859 character sets to
125 use through your choice of language environment (@pxref{Language
128 @vindex read-quoted-char-radix
129 To use decimal or hexadecimal instead of octal, set the variable
130 @code{read-quoted-char-radix} to 10 or 16. If the radix is greater than
131 10, some letters starting with @kbd{a} serve as part of a character
132 code, just like digits.
134 A numeric argument to @kbd{C-q} specifies how many copies of the
135 quoted character should be inserted (@pxref{Arguments}).
139 Customization information: @key{DEL} in most modes runs the command
140 @code{delete-backward-char}; @key{RET} runs the command @code{newline}, and
141 self-inserting printing characters run the command @code{self-insert},
142 which inserts whatever character was typed to invoke it. Some major modes
143 rebind @key{DEL} to other commands.
146 @section Changing the Location of Point
151 @cindex cursor motion
152 @cindex moving the cursor
153 To do more than insert characters, you have to know how to move point
154 (@pxref{Point}). The simplest way to do this is with arrow keys, or by
155 clicking the left mouse button where you want to move to.
157 There are also control and meta characters for cursor motion. Some
158 are equivalent to the arrow keys (it is faster to use these control
159 keys than move your hand over to the arrow keys). Others do more
160 sophisticated things.
175 @findex move-beginning-of-line
176 @findex move-end-of-line
178 @findex backward-char
180 @findex previous-line
181 @findex beginning-of-buffer
182 @findex end-of-buffer
185 @findex move-to-window-line
188 Move to the beginning of the line (@code{move-beginning-of-line}).
190 Move to the end of the line (@code{move-end-of-line}).
192 Move forward one character (@code{forward-char}). The right-arrow key
195 Move backward one character (@code{backward-char}). The left-arrow
196 key has the same effect.
198 Move forward one word (@code{forward-word}).
200 Move backward one word (@code{backward-word}).
202 Move down one line, vertically (@code{next-line}). This command
203 attempts to keep the horizontal position unchanged, so if you start in
204 the middle of one line, you end in the middle of the next. The
205 down-arrow key does the same thing.
207 Move up one line, vertically (@code{previous-line}). The up-arrow key
210 Move point to left margin, vertically centered in the window
211 (@code{move-to-window-line}). Text does not move on the screen.
213 A numeric argument says which screen line to place point on. It counts
214 screen lines down from the top of the window (zero for the top line). A
215 negative argument counts lines from the bottom (@minus{}1 for the bottom
218 Move to the top of the buffer (@code{beginning-of-buffer}). With
219 numeric argument @var{n}, move to @var{n}/10 of the way from the top.
220 @xref{Arguments}, for more information on numeric arguments.@refill
222 Move to the end of the buffer (@code{end-of-buffer}).
224 @itemx @key{PAGEDOWN}
226 Scroll the display one screen forward, and move point if necessary to
227 put it on the screen (@code{scroll-up}). This doesn't always move
228 point, but it is commonly used to do so. If your keyboard has a
229 @key{PAGEDOWN} or @key{PRIOR} key, it does the same thing.
231 Scrolling commands are further described in @ref{Scrolling}.
235 Scroll one screen backward, and move point if necessary to put it on
236 the screen (@code{scroll-down}). This doesn't always move point, but
237 it is commonly used to do so. If your keyboard has a @key{PAGEUP} or
238 @key{NEXT} key, it does the same thing.
240 Read a number @var{n} and move point to buffer position @var{n}.
241 Position 1 is the beginning of the buffer.
245 Read a number @var{n} and move point to the beginning of line number
246 @var{n}. Line 1 is the beginning of the buffer. If point is on or
247 just after a number, then that is the default for @var{n}, if you just
248 press @key{RET} with an empty minibuffer.
250 @findex set-goal-column
252 Use the current column of point as the @dfn{semipermanent goal column} for
253 @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}). Henceforth, those
254 commands always move to this column in each line moved into, or as
255 close as possible given the contents of the line. This goal column remains
256 in effect until canceled.
258 Cancel the goal column. Henceforth, @kbd{C-n} and @kbd{C-p} once
259 again try to stick to a fixed horizontal position, as usual.
263 If you set the variable @code{track-eol} to a non-@code{nil} value,
264 then @kbd{C-n} and @kbd{C-p}, when starting at the end of the line, move
265 to the end of another line. Normally, @code{track-eol} is @code{nil}.
266 @xref{Variables}, for how to set variables such as @code{track-eol}.
268 @vindex next-line-add-newlines
269 @kbd{C-n} normally stops at the end of the buffer when you use it on
270 the last line of the buffer. But if you set the variable
271 @code{next-line-add-newlines} to a non-@code{nil} value, @kbd{C-n} on
272 the last line of a buffer creates an additional line at the end and
276 @section Erasing Text
280 Delete the character before point (@code{delete-backward-char}).
282 Delete the character after point (@code{delete-char}).
284 @itemx @key{BACKSPACE}
285 One of these keys, whichever is the large key above the @key{RET} or
286 @key{ENTER} key, deletes the character before point---it is @key{DEL}.
287 If @key{BACKSPACE} is @key{DEL}, and your keyboard also has @key{DELETE},
288 then @key{DELETE} deletes forwards, like @kbd{C-d}.
290 Kill to the end of the line (@code{kill-line}).
292 Kill forward to the end of the next word (@code{kill-word}).
294 Kill back to the beginning of the previous word
295 (@code{backward-kill-word}).
298 @cindex killing characters and lines
299 @cindex deleting characters and lines
300 @cindex erasing characters and lines
301 You already know about the @key{DEL} key which deletes the character
302 before point (that is, before the cursor). Another key, @kbd{Control-d}
303 (@kbd{C-d} for short), deletes the character after point (that is, the
304 character that the cursor is on). This shifts the rest of the text on
305 the line to the left. If you type @kbd{C-d} at the end of a line, it
306 joins together that line and the next line.
308 To erase a larger amount of text, use the @kbd{C-k} key, which kills a
309 line at a time. If you type @kbd{C-k} at the beginning or middle of a
310 line, it kills all the text up to the end of the line. If you type
311 @kbd{C-k} at the end of a line, it joins that line and the next line.
313 @xref{Killing}, for more flexible ways of killing text.
316 @section Undoing Changes
318 Emacs records a list of changes made in the buffer text, so you can
319 you can undo all the recent changes, as far as the records go.
320 Usually each editing command makes a separate entry in the undo
321 records, but sometimes an entry covers just part of a command, and
322 very simple commands may be grouped.
326 Undo one entry of the undo records---usually, one command worth
333 The command @kbd{C-x u} (or @kbd{C-_} or @kbd{C-/}) is how you undo.
334 The first time you give this command, it undoes the last change.
335 Point moves back to where it was before the command that made the
338 Consecutive repetitions of @kbd{C-x u} (or its aliases) undo earlier
339 and earlier changes, back to the limit of the undo information
340 available. If all recorded changes have already been undone, the undo
341 command displays an error message and does nothing.
343 The undo command applies only to changes in the buffer; you can't
344 use it to undo mere cursor motion. However, some cursor motion
345 commands set the mark, so if you use these commands from time to time,
346 you can move back to the neighborhoods you have moved through by
347 popping the mark ring (@pxref{Mark Ring}).
352 The commands described above are sufficient for creating and altering
353 text in an Emacs buffer; the more advanced Emacs commands just make
354 things easier. However, to keep any text permanently you must put it in a
355 @dfn{file}. Files are named units of text which are stored by the
356 operating system for you to retrieve later by name. To look at or use
357 the contents of a file in any way, including editing the file with
358 Emacs, you must specify the file name.
360 Consider a file named @file{test.emacs}. (We can assume it is in
361 your home directory.) In Emacs, to begin editing this file, type
364 C-x C-f test.emacs @key{RET}
368 Here the file name is given as an @dfn{argument} to the command @kbd{C-x
369 C-f} (@code{find-file}). That command uses the @dfn{minibuffer} to
370 read the argument, and you type @key{RET} to terminate the argument
371 (@pxref{Minibuffer}).@refill
373 Emacs obeys the command by @dfn{visiting} the file: creating a buffer,
374 copying the contents of the file into the buffer, and then displaying
375 the buffer for you to edit. If you alter the text, you can @dfn{save}
376 the new text in the file by typing @kbd{C-x C-s} (@code{save-buffer}).
377 This makes the changes permanent by copying the altered buffer contents
378 back into the file @file{test.emacs}. Until you save, the changes
379 exist only inside Emacs, and the file @file{test.emacs} is unaltered.
381 To create a file, just visit the file with @kbd{C-x C-f} as if it
382 already existed. This creates an empty buffer in which you can insert
383 the text you want to put in the file. The file is actually created when
384 you save this buffer with @kbd{C-x C-s}.
386 Of course, there is a lot more to learn about using files. @xref{Files}.
391 @cindex getting help with keys
392 If you forget what a key does, you can find out with the Help
393 character, which is @kbd{C-h} (or @key{F1}, which is an alias for
394 @kbd{C-h}). Type @kbd{C-h k} followed by the key you want to know
395 about; for example, @kbd{C-h k C-n} tells you all about what @kbd{C-n}
396 does. @kbd{C-h} is a prefix key; @kbd{C-h k} is just one of its
397 subcommands (the command @code{describe-key}). The other subcommands of
398 @kbd{C-h} provide different kinds of help. Type @kbd{C-h} twice to get
399 a description of all the help facilities. @xref{Help}.@refill
404 @cindex inserting blank lines
405 @cindex deleting blank lines
406 Here are special commands and techniques for putting in and taking out
411 Insert one or more blank lines after the cursor (@code{open-line}).
413 Delete all but one of many consecutive blank lines
414 (@code{delete-blank-lines}).
421 @findex delete-blank-lines
422 When you want to insert a new line of text before an existing line, you
423 can do it by typing the new line of text, followed by @key{RET}.
424 However, it may be easier to see what you are doing if you first make a
425 blank line and then insert the desired text into it. This is easy to do
426 using the key @kbd{C-o} (@code{open-line}), which inserts a newline
427 after point but leaves point in front of the newline. After @kbd{C-o},
428 type the text for the new line. @kbd{C-o F O O} has the same effect as
429 @w{@kbd{F O O @key{RET}}}, except for the final location of point.
431 You can make several blank lines by typing @kbd{C-o} several times, or
432 by giving it a numeric argument to tell it how many blank lines to make.
433 @xref{Arguments}, for how. If you have a fill prefix, the @kbd{C-o}
434 command inserts the fill prefix on the new line, when you use it at the
435 beginning of a line. @xref{Fill Prefix}.
437 The easy way to get rid of extra blank lines is with the command
438 @kbd{C-x C-o} (@code{delete-blank-lines}). @kbd{C-x C-o} in a run of
439 several blank lines deletes all but one of them. @kbd{C-x C-o} on a
440 solitary blank line deletes that blank line. When point is on a
441 nonblank line, @kbd{C-x C-o} deletes any blank lines following that
444 @node Continuation Lines
445 @section Continuation Lines
447 @cindex continuation line
449 @cindex line wrapping
450 @cindex fringes, and continuation lines
451 If you add too many characters to one line without breaking it with
452 @key{RET}, the line grows to occupy two (or more) lines on the screen.
453 On graphical displays, Emacs indicates line wrapping with small bent
454 arrows in the fringes to the left and right of the window. On
455 text-only terminals, Emacs displays a @samp{\} character at the right
456 margin of a screen line if it is not the last in its text line. This
457 @samp{\} character says that the following screen line is not really a
458 distinct line in the text, just a @dfn{continuation} of a line too
459 long to fit the screen. Continuation is also called @dfn{line
462 When line wrapping occurs before a character that is wider than one
463 column, some columns at the end of the previous screen line may be
464 ``empty.'' In this case, Emacs displays additional @samp{\}
465 characters in the ``empty'' columns, just before the @samp{\}
466 character that indicates continuation.
468 Continued lines can be rather difficult to read, since each line is
469 typically broken in the middle of a word. You can have Emacs insert a
470 newline automatically when a line gets too long, by using Auto Fill
471 mode. Another approach, intermediate between continued lines and Auto
472 Fill mode, is Long Lines mode, which ensures that wrapping only occurs
473 in the spaces between words. @xref{Filling}.
476 @cindex line truncation, and fringes
477 Emacs can also display long lines by @dfn{truncation}. This means
478 that all the characters that do not fit in the width of the screen or
479 window do not appear at all. @samp{$} in the last column or a small
480 straight arrow in the fringe to the right of the window indicates a
483 @xref{Display Custom}, for more information about line truncation,
484 and other variables that affect how text is displayed.
487 @section Cursor Position Information
489 Here are commands to get information about the size and position of
490 parts of the buffer, and to count lines.
494 Display the page number of point, and the line number within the page.
496 Display the line number of point in the buffer.
497 @item M-x line-number-mode
498 @itemx M-x column-number-mode
499 Toggle automatic display of current line number or column number.
500 @xref{Optional Mode Line}.
502 Display the number of lines in the current region (@code{count-lines-region}).
503 @xref{Mark}, for information about the region.
505 Display the character code of character after point, character position of
506 point, and column of point (@code{what-cursor-position}).
507 @item M-x hl-line-mode
508 Enable or disable highlighting of the current line. @xref{Cursor
510 @item M-x size-indication-mode
511 Toggle automatic display of the size of the buffer.
512 @xref{Optional Mode Line}.
517 @cindex line number commands
518 @cindex location of point
519 @cindex cursor location
520 @cindex point location
521 @kbd{M-x what-line} computes the current line number and displays it
522 in the echo area. You can also see the current line number in the
523 mode line; see @ref{Mode Line}. If you narrow the buffer, then the
524 line number in the mode line is relative to the accessible portion
525 (@pxref{Narrowing}). By contrast, @code{what-line} shows both the
526 line number relative to the narrowed region and the line number
527 relative to the whole buffer.
529 @kbd{M-x what-page} counts pages from the beginning of the file, and
530 counts lines within the page, showing both numbers in the echo area.
534 @findex count-lines-region
535 While on this subject, we might as well mention @kbd{M-=} (@code{count-lines-region}),
536 which displays the number of lines in the region (@pxref{Mark}).
537 @xref{Pages}, for the command @kbd{C-x l} which counts the lines in the
541 @findex what-cursor-position
542 The command @kbd{C-x =} (@code{what-cursor-position}) shows what
543 column the cursor is in, and other miscellaneous information about
544 point and the character after it. It displays a line in the echo area
545 that looks like this:
548 Char: c (99, #o143, #x63) point=28062 of 36168 (78%) column=53
551 The four values after @samp{Char:} describe the character that follows
552 point, first by showing it and then by giving its character code in
553 decimal, octal and hex. For a non-@acronym{ASCII} multibyte character, these are
554 followed by @samp{file} and the character's representation, in hex, in
555 the buffer's coding system, if that coding system encodes the character
556 safely and with a single byte (@pxref{Coding Systems}). If the
557 character's encoding is longer than one byte, Emacs shows @samp{file ...}.
559 However, if the character displayed is in the range 0200 through
560 0377 octal, it may actually stand for an invalid UTF-8 byte read from
561 a file. In Emacs, that byte is represented as a sequence of 8-bit
562 characters, but all of them together display as the original invalid
563 byte, in octal code. In this case, @kbd{C-x =} shows @samp{part of
564 display ...} instead of @samp{file}.
566 @samp{point=} is followed by the position of point expressed as a character
567 count. The front of the buffer counts as position 1, one character later
568 as 2, and so on. The next, larger, number is the total number of characters
569 in the buffer. Afterward in parentheses comes the position expressed as a
570 percentage of the total size.
572 @samp{column=} is followed by the horizontal position of point, in
573 columns from the left edge of the window.
575 If the buffer has been narrowed, making some of the text at the
576 beginning and the end temporarily inaccessible, @kbd{C-x =} displays
577 additional text describing the currently accessible range. For example, it
581 Char: C (67, #o103, #x43) point=252 of 889 (28%) <231-599> column=0
585 where the two extra numbers give the smallest and largest character
586 position that point is allowed to assume. The characters between those
587 two positions are the accessible ones. @xref{Narrowing}.
589 If point is at the end of the buffer (or the end of the accessible
590 part), the @w{@kbd{C-x =}} output does not describe a character after
591 point. The output might look like this:
594 point=36169 of 36168 (EOB) column=0
597 @cindex character set of character at point
598 @cindex font of character at point
599 @cindex text properties at point
600 @w{@kbd{C-u C-x =}} displays the following additional information about a
605 The character set name, and the codes that identify the character
606 within that character set; @acronym{ASCII} characters are identified
607 as belonging to the @code{ascii} character set.
610 The character's syntax and categories.
613 The character's encodings, both internally in the buffer, and externally
614 if you were to save the file.
617 What to type to input the character in the current input method
618 (if it supports the character).
621 If you are running Emacs on a graphical display, the font name and
622 glyph code for the character. If you are running Emacs on a text-only
623 terminal, the code(s) sent to the terminal.
626 The character's text properties (@pxref{Text Properties,,,
627 elisp, the Emacs Lisp Reference Manual}), and any overlays containing it
628 (@pxref{Overlays,,, elisp, the same manual}).
631 Here's an example showing the Latin-1 character A with grave accent,
632 in a buffer whose coding system is @code{iso-latin-1}, whose
633 terminal coding system is @code{iso-latin-1} (so the terminal actually
634 displays the character as @samp{@`A}), and which has font-lock-mode
635 (@pxref{Font Lock}) enabled:
638 character: @`A (2240, #o4300, #x8c0, U+00C0)
639 charset: latin-iso8859-1
640 (Right-Hand Part of Latin Alphabet 1@dots{}
642 syntax: w which means: word
644 to input: type "`A" with latin-1-prefix
645 buffer code: #x81 #xC0
646 file code: #xC0 (encoded by coding system iso-latin-1)
647 display: terminal code #xC0
649 There are text properties here:
654 @section Numeric Arguments
655 @cindex numeric arguments
656 @cindex prefix arguments
657 @cindex arguments to commands
659 In mathematics and computer usage, the word @dfn{argument} means
660 ``data provided to a function or operation.'' You can give any Emacs
661 command a @dfn{numeric argument} (also called a @dfn{prefix argument}).
662 Some commands interpret the argument as a repetition count. For
663 example, @kbd{C-f} with an argument of ten moves forward ten characters
664 instead of one. With these commands, no argument is equivalent to an
665 argument of one. Negative arguments tell most such commands to move or
666 act in the opposite direction.
670 @findex digit-argument
671 @findex negative-argument
672 If your terminal keyboard has a @key{META} key (labeled @key{ALT} on
673 PC keyboards), the easiest way to specify a numeric argument is to
674 type digits and/or a minus sign while holding down the @key{META} key.
682 would move down five lines. The characters @kbd{Meta-1}, @kbd{Meta-2},
683 and so on, as well as @kbd{Meta--}, do this because they are keys bound
684 to commands (@code{digit-argument} and @code{negative-argument}) that
685 are defined to contribute to an argument for the next command.
686 @kbd{Meta--} without digits normally means @minus{}1. Digits and
687 @kbd{-} modified with Control, or Control and Meta, also specify numeric
691 @findex universal-argument
692 Another way of specifying an argument is to use the @kbd{C-u}
693 (@code{universal-argument}) command followed by the digits of the
694 argument. With @kbd{C-u}, you can type the argument digits without
695 holding down modifier keys; @kbd{C-u} works on all terminals. To type a
696 negative argument, type a minus sign after @kbd{C-u}. Just a minus sign
697 without digits normally means @minus{}1.
699 @kbd{C-u} without digits or minus sign has the special meaning of
700 ``four times'': it multiplies the argument for the next command by
701 four. @kbd{C-u C-u} multiplies it by sixteen. Thus, @kbd{C-u C-u
702 C-f} moves forward sixteen characters. This is a good way to move
703 forward ``fast,'' since it moves about 1/5 of a line in the usual size
704 screen. Other useful combinations are @kbd{C-u C-n}, @kbd{C-u C-u
705 C-n} (move down a good fraction of a screen), @kbd{C-u C-u C-o} (make
706 ``a lot'' of blank lines), and @kbd{C-u C-k} (kill four lines).@refill
708 Some commands care only about whether there is an argument, and not about
709 its value. For example, the command @kbd{M-q} (@code{fill-paragraph}) with
710 no argument fills text; with an argument, it justifies the text as well.
711 (@xref{Filling}, for more information on @kbd{M-q}.) Plain @kbd{C-u} is a
712 handy way of providing an argument for such commands.
714 Some commands use the value of the argument as a repeat count, but do
715 something peculiar when there is no argument. For example, the command
716 @kbd{C-k} (@code{kill-line}) with argument @var{n} kills @var{n} lines,
717 including their terminating newlines. But @kbd{C-k} with no argument is
718 special: it kills the text up to the next newline, or, if point is right at
719 the end of the line, it kills the newline itself. Thus, two @kbd{C-k}
720 commands with no arguments can kill a nonblank line, just like @kbd{C-k}
721 with an argument of one. (@xref{Killing}, for more information on
724 A few commands treat a plain @kbd{C-u} differently from an ordinary
725 argument. A few others may treat an argument of just a minus sign
726 differently from an argument of @minus{}1. These unusual cases are
727 described when they come up; they are always for reasons of
728 convenience of use of the individual command, and they are documented
729 in the command's documentation string.
731 You can use a numeric argument to insert multiple copies of a
732 character. This is straightforward unless the character is a digit; for
733 example, @kbd{C-u 6 4 a} inserts 64 copies of the character @samp{a}.
734 But this does not work for inserting digits; @kbd{C-u 6 4 1} specifies
735 an argument of 641, rather than inserting anything. To separate the
736 digit to insert from the argument, type another @kbd{C-u}; for example,
737 @kbd{C-u 6 4 C-u 1} does insert 64 copies of the character @samp{1}.
739 We use the term ``prefix argument'' as well as ``numeric argument'' to
740 emphasize that you type the argument before the command, and to
741 distinguish these arguments from minibuffer arguments that come after
745 @section Repeating a Command
746 @cindex repeating a command
748 Many simple commands, such as those invoked with a single key or
749 with @kbd{M-x @var{command-name} @key{RET}}, can be repeated by
750 invoking them with a numeric argument that serves as a repeat count
751 (@pxref{Arguments}). However, if the command you want to repeat
752 prompts for some input, or uses a numeric argument in another way,
753 repetition using a numeric argument might be problematical.
757 The command @kbd{C-x z} (@code{repeat}) provides another way to repeat
758 an Emacs command many times. This command repeats the previous Emacs
759 command, whatever that was. Repeating a command uses the same arguments
760 that were used before; it does not read new arguments each time.
762 To repeat the command more than once, type additional @kbd{z}'s: each
763 @kbd{z} repeats the command one more time. Repetition ends when you
764 type a character other than @kbd{z}, or press a mouse button.
766 For example, suppose you type @kbd{C-u 2 0 C-d} to delete 20
767 characters. You can repeat that command (including its argument) three
768 additional times, to delete a total of 80 characters, by typing @kbd{C-x
769 z z z}. The first @kbd{C-x z} repeats the command once, and each
770 subsequent @kbd{z} repeats it once again.
773 arch-tag: cda8952a-c439-41c1-aecf-4bc0d6482956