@c This is part of the Emacs manual.@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,@c 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.@c See file emacs.texi for copying conditions.@node Basic, Minibuffer, Exiting, Top@chapter Basic Editing Commands@kindex C-h t@findex help-with-tutorial Here we explain the basics of how to enter text, make corrections,and save the text in a file. If this material is new to you, wesuggest you first run the Emacs learn-by-doing tutorial, by typing@kbd{Control-h t} inside Emacs. (@code{help-with-tutorial}). To clear and redisplay the screen, type @kbd{C-l} (@code{recenter}).@menu* Inserting Text:: Inserting text by simply typing it.* Moving Point:: Moving the cursor to the place where you want to change something.* Erasing:: Deleting and killing text.* Basic Undo:: Undoing recent changes in the text.* Files: Basic Files. Visiting, creating, and saving files.* Help: Basic Help. Asking what a character does.* Blank Lines:: Making and deleting blank lines.* Continuation Lines:: How Emacs displays lines too wide for the screen.* Position Info:: What page, line, row, or column is point on?* Arguments:: Numeric arguments for repeating a command N times.* Repeating:: Repeating the previous command quickly.@end menu@node Inserting Text@section Inserting Text@cindex insertion@cindex graphic characters Typing printing characters inserts them into the text you areediting. It inserts them into the buffer at the cursor; moreprecisely, it inserts them at @dfn{point}, but the cursor normallyshows where point is. @xref{Point}. Insertion moves the cursor forward, and the following text movesforward with the cursor. If the text in the buffer is @samp{FOOBAR},with the cursor before the @samp{B}, and you type @kbd{XX}, you get@samp{FOOXXBAR}, with the cursor still before the @samp{B}. To @dfn{delete} text you have just inserted, use the large keylabeled @key{DEL}, @key{BACKSPACE} or @key{DELETE} which is a shortdistance above the @key{RET} or @key{ENTER} key. Regardless of thelabel on that key, Emacs thinks of it as @key{DEL}, and that's what wecall it in this manual. @key{DEL} is the key you normally use outsideEmacs to erase the last character that you typed. The @key{DEL} key deletes the character @emph{before} the cursor.As a consequence, the cursor and all the characters after it movebackwards. If you type a printing character and then type @key{DEL},they cancel out. On most computers, Emacs sets up @key{DEL} automatically. In somecases, especially with text-only terminals, Emacs may guess wrong. Ifthe key that ought to erase the last character doesn't do it in Emacs,see @ref{DEL Does Not Delete}. Most PC keyboards have both a @key{BACKSPACE} key a little waysabove @key{RET} or @key{ENTER}, and a @key{DELETE} key elsewhere. Onthese keyboards, Emacs tries to set up @key{BACKSPACE} as @key{DEL}.The @key{DELETE} key deletes ``forwards'' like @kbd{C-d} (see below),which means it deletes the character underneath the cursor (afterpoint).@kindex RET@cindex newline To end a line and start typing a new one, type @key{RET}. (Thiskey may be labeled @key{RETURN} or @key{ENTER}, but in Emacs we callit @key{RET}.) This inserts a newline character in the buffer. Ifpoint is at the end of the line, this creates a new blank line afterit. If point is in the middle of a line, the effect is to split thatline. Typing @key{DEL} when the cursor is at the beginning of a linedeletes the preceding newline character, thus joining the line withthe one before it. Emacs can split lines automatically when they become too long, ifyou turn on a special minor mode called @dfn{Auto Fill} mode.@xref{Filling}, for Auto Fill mode and other methods of @dfn{filling}text. If you prefer printing characters to replace (overwrite) existingtext, rather than shove it to the right, you should enable Overwritemode, a minor mode. @xref{Minor Modes}.@cindex quoting@kindex C-q@findex quoted-insert Only printing characters and @key{SPC} insert themselves in Emacs.Other characters act as editing commands and do not insert themselves.These include control characters, and characters with codes above 200octal. If you need to insert one of these characters in the buffer,you must @dfn{quote} it by typing the character @kbd{Control-q}(@code{quoted-insert}) first. (This character's name is normallywritten @kbd{C-q} for short.) There are two ways to use@kbd{C-q}:@itemize @bullet@item@kbd{C-q} followed by any non-graphic character (even @kbd{C-g})inserts that character.@item@kbd{C-q} followed by a sequence of octal digits inserts the characterwith the specified octal character code. You can use any number ofoctal digits; any non-digit terminates the sequence. If theterminating character is @key{RET}, it serves only to terminate thesequence. Any other non-digit terminates the sequence and then actsas normal input---thus, @kbd{C-q 1 0 1 B} inserts @samp{AB}.The use of octal sequences is disabled in ordinary non-binaryOverwrite mode, to give you a convenient way to insert a digit insteadof overwriting with it.@end itemize@cindex 8-bit character codes@noindentWhen multibyte characters are enabled, if you specify a code in therange 0200 through 0377 octal, @kbd{C-q} assumes that you intend touse some ISO 8859-@var{n} character set, and converts the specifiedcode to the corresponding Emacs character code. @xref{EnablingMultibyte}. You select @emph{which} of the ISO 8859 character sets touse through your choice of language environment (@pxref{LanguageEnvironments}).@vindex read-quoted-char-radixTo use decimal or hexadecimal instead of octal, set the variable@code{read-quoted-char-radix} to 10 or 16. If the radix is greater than10, some letters starting with @kbd{a} serve as part of a charactercode, just like digits.A numeric argument tells @kbd{C-q} how many copies of the quotedcharacter to insert (@pxref{Arguments}).@findex newline@findex self-insert Customization information: @key{DEL} in most modes runs the command@code{delete-backward-char}; @key{RET} runs the command@code{newline}, and self-inserting printing characters run the command@code{self-insert}, which inserts whatever character you typed. Somemajor modes rebind @key{DEL} to other commands.@node Moving Point@section Changing the Location of Point@cindex arrow keys@cindex moving point@cindex movement@cindex cursor motion@cindex moving the cursor To do more than insert characters, you have to know how to move point(@pxref{Point}). The simplest way to do this is with arrow keys, or byclicking the left mouse button where you want to move to. There are also control and meta characters for cursor motion. Someare equivalent to the arrow keys (it is faster to use these controlkeys than move your hand over to the arrow keys). Others do moresophisticated things.@kindex C-a@kindex C-e@kindex C-f@kindex C-b@kindex C-n@kindex C-p@kindex M->@kindex M-<@kindex M-r@kindex LEFT@kindex RIGHT@kindex UP@kindex DOWN@findex move-beginning-of-line@findex move-end-of-line@findex forward-char@findex backward-char@findex next-line@findex previous-line@findex beginning-of-buffer@findex end-of-buffer@findex goto-char@findex goto-line@findex move-to-window-line@table @kbd@item C-aMove to the beginning of the line (@code{move-beginning-of-line}).@item C-eMove to the end of the line (@code{move-end-of-line}).@item C-fMove forward one character (@code{forward-char}). The right-arrow keydoes the same thing.@item C-bMove backward one character (@code{backward-char}). The left-arrowkey has the same effect.@item M-fMove forward one word (@code{forward-word}).@item M-bMove backward one word (@code{backward-word}).@item C-nMove down one line vertically (@code{next-line}). This commandattempts to keep the horizontal position unchanged, so if you start inthe middle of one line, you move to the middle of the next. Thedown-arrow key does the same thing.@item C-pMove up one line, vertically (@code{previous-line}). The up-arrow keyhas the same effect. This command preserves position within the line,like @kbd{C-n}.@item M-rMove point to left margin, vertically centered in the window(@code{move-to-window-line}). Text does not move on the screen.A numeric argument says which screen line to place point on, countingdownward from the top of the window (zero means the top line). Anegative argument counts lines up from the bottom (@minus{}1 means thebottom line).@item M-<Move to the top of the buffer (@code{beginning-of-buffer}). Withnumeric argument @var{n}, move to @var{n}/10 of the way from the top.@xref{Arguments}, for more information on numeric arguments.@refill@item M->Move to the end of the buffer (@code{end-of-buffer}).@item C-v@itemx @key{PAGEDOWN}@itemx @key{PRIOR}Scroll the display one screen forward, and move point if necessary toput it on the screen (@code{scroll-up}). This doesn't always movepoint, but it is commonly used to do so. If your keyboard has a@key{PAGEDOWN} or @key{PRIOR} key, it does the same thing.Scrolling commands are described further in @ref{Scrolling}.@item M-v@itemx @key{PAGEUP}@itemx @key{NEXT}Scroll one screen backward, and move point if necessary to put it onthe screen (@code{scroll-down}). This doesn't always move point, butit is commonly used to do so. If your keyboard has a @key{PAGEUP} or@key{NEXT} key, it does the same thing.@item M-x goto-charRead a number @var{n} and move point to buffer position @var{n}.Position 1 is the beginning of the buffer.@item M-g M-g@itemx M-g g@itemx M-x goto-lineRead a number @var{n} and move point to the beginning of line number@var{n}. Line 1 is the beginning of the buffer. If point is on orjust after a number in the buffer, and you type @key{RET} with theminibuffer empty, that number is used for @var{n}.@item C-x C-n@findex set-goal-column@kindex C-x C-nUse the current column of point as the @dfn{semipermanent goal column}for @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}). When asemipermanent goal column is in effect, those commands always try tomove to this column, or as close as possible to it, after movingvertically. The goal column remains in effect until canceled.@item C-u C-x C-nCancel the goal column. Henceforth, @kbd{C-n} and @kbd{C-p} try topreserve the horizontal position, as usual.@end table@vindex track-eol If you set the variable @code{track-eol} to a non-@code{nil} value,then @kbd{C-n} and @kbd{C-p}, when starting at the end of the line, moveto the end of another line. Normally, @code{track-eol} is @code{nil}.@xref{Variables}, for how to set variables such as @code{track-eol}.@vindex next-line-add-newlines @kbd{C-n} normally stops at the end of the buffer when you use it onthe last line of the buffer. However, if you set the variable@code{next-line-add-newlines} to a non-@code{nil} value, @kbd{C-n} onthe last line of a buffer creates an additional line at the end andmoves down into it.@node Erasing@section Erasing Text@table @kbd@item @key{DEL}Delete the character before point (@code{delete-backward-char}).@item C-dDelete the character after point (@code{delete-char}).@item @key{DELETE}@itemx @key{BACKSPACE}One of these keys, whichever is the large key above the @key{RET} or@key{ENTER} key, deletes the character before point---it is @key{DEL}.If @key{BACKSPACE} is @key{DEL}, and your keyboard also has @key{DELETE},then @key{DELETE} deletes forwards, like @kbd{C-d}.@item C-kKill to the end of the line (@code{kill-line}).@item M-dKill forward to the end of the next word (@code{kill-word}).@item M-@key{DEL}Kill back to the beginning of the previous word(@code{backward-kill-word}).@end table@cindex killing characters and lines@cindex deleting characters and lines@cindex erasing characters and lines You already know about the @key{DEL} key which deletes the characterbefore point (that is, before the cursor). Another key, @kbd{Control-d}(@kbd{C-d} for short), deletes the character after point (that is, thecharacter that the cursor is on). This shifts the rest of the text onthe line to the left. If you type @kbd{C-d} at the end of a line, itjoins that line with the following line. To erase a larger amount of text, use the @kbd{C-k} key, whicherases (kills) a line at a time. If you type @kbd{C-k} at thebeginning or middle of a line, it kills all the text up to the end ofthe line. If you type @kbd{C-k} at the end of a line, it joins thatline with the following line. @xref{Killing}, for more flexible ways of killing text.@node Basic Undo@section Undoing Changes Emacs records a list of changes made in the buffer text, so you canyou can undo recent changes, as far as the records go.Usually each editing command makes a separate entry in the undorecords, but sometimes an entry covers just part of a command, andvery simple commands may be grouped.@table @kbd@item C-x uUndo one entry of the undo records---usually, one command worth(@code{undo}).@item C-_@itemx C-/The same.@end table The command @kbd{C-x u} (or @kbd{C-_} or @kbd{C-/}) is how you undo.Normally this command undoes the last change, and moves point back towhere it was before the change. If you repeat @kbd{C-x u} (or its aliases), each repetition undoesanother, earlier change, back to the limit of the undo informationavailable. If all recorded changes have already been undone, the undocommand displays an error message and does nothing. The undo command applies only to changes in the buffer; you can'tuse it to undo mere cursor motion. However, some cursor motioncommands set the mark, so if you use these commands from time to time,you can move back to the neighborhoods you have moved through bypopping the mark ring (@pxref{Mark Ring}).@node Basic Files@section Files Text that you insert in an Emacs buffer lasts only as long as theEmacs session. To keep any text permanently you must put it in a@dfn{file}. Files are named units of text which are stored by theoperating system for you to retrieve later by name. To use thecontents of a file in any way, you must specify the file name. Thatincludes editing the file with Emacs. Suppose there is a file named @file{test.emacs} in your homedirectory. To begin editing this file in Emacs, type@exampleC-x C-f test.emacs @key{RET}@end example@noindentHere the file name is given as an @dfn{argument} to the command @kbd{C-xC-f} (@code{find-file}). That command uses the @dfn{minibuffer} toread the argument, and you type @key{RET} to terminate the argument(@pxref{Minibuffer}). Emacs obeys this command by @dfn{visiting} the file: it creates abuffer, it copies the contents of the file into the buffer, and thendisplays the buffer for editing. If you alter the text, you can@dfn{save} the new text in the file by typing @kbd{C-x C-s}(@code{save-buffer}). This copies the altered buffer contents backinto the file @file{test.emacs}, making them permanent. Until yousave, the changed text exists only inside Emacs, and the file@file{test.emacs} is unaltered. To create a file, just visit it with @kbd{C-x C-f} as if it alreadyexisted. This creates an empty buffer, in which you can insert thetext you want to put in the file. Emacs actually creates the file thefirst time you save this buffer with @kbd{C-x C-s}. To learn more about using files in Emacs, see @ref{Files}.@node Basic Help@section Help@cindex getting help with keys If you forget what a key does, you can find out with the Helpcharacter, which is @kbd{C-h} (or @key{F1}, which is an alias for@kbd{C-h}). Type @kbd{C-h k} followed by the key of interest; forexample, @kbd{C-h k C-n} tells you what @kbd{C-n} does. @kbd{C-h} isa prefix key; @kbd{C-h k} is just one of its subcommands (the command@code{describe-key}). The other subcommands of @kbd{C-h} providedifferent kinds of help. Type @kbd{C-h} twice to get a description ofall the help facilities. @xref{Help}.@node Blank Lines@section Blank Lines@cindex inserting blank lines@cindex deleting blank lines Here are special commands and techniques for inserting and deletingblank lines.@table @kbd@item C-oInsert one or more blank lines after the cursor (@code{open-line}).@item C-x C-oDelete all but one of many consecutive blank lines(@code{delete-blank-lines}).@end table@kindex C-o@kindex C-x C-o@cindex blank lines@findex open-line@findex delete-blank-lines To insert a new line of text before an existing line,type the new line of text, followed by @key{RET}.However, it may be easier to see what you are doing if you first make ablank line and then insert the desired text into it. This is easy to dousing the key @kbd{C-o} (@code{open-line}), which inserts a newlineafter point but leaves point in front of the newline. After @kbd{C-o},type the text for the new line. @kbd{C-o F O O} has the same effect as@w{@kbd{F O O @key{RET}}}, except for the final location of point. You can make several blank lines by typing @kbd{C-o} several times, orby giving it a numeric argument specifying how many blank lines to make.@xref{Arguments}, for how. If you have a fill prefix, the @kbd{C-o}command inserts the fill prefix on the new line, if typed at thebeginning of a line. @xref{Fill Prefix}. The easy way to get rid of extra blank lines is with the command@kbd{C-x C-o} (@code{delete-blank-lines}). @kbd{C-x C-o} in a run ofseveral blank lines deletes all but one of them. @kbd{C-x C-o} on alone blank line deletes that one. When point is on a nonblank line,@kbd{C-x C-o} deletes all following blank lines (if any).@node Continuation Lines@section Continuation Lines@cindex continuation line@cindex wrapping@cindex line wrapping@cindex fringes, and continuation lines When a text line is too long to fit in one screen line, Emacsdisplays it on two or more screen lines. This is called@dfn{continuation} or @dfn{line wrapping}. On graphical displays,Emacs indicates line wrapping with small bent arrows in the left andright window fringes. On text-only terminals, Emacs displays a@samp{\} character at the right margin of a screen line if it is notthe last in its text line. This @samp{\} character says that thefollowing screen line is not really a new text line. When line wrapping occurs just before a character that is wider than onecolumn, some columns at the end of the previous screen line may be``empty.'' In this case, Emacs displays additional @samp{\}characters in the ``empty'' columns before the @samp{\}character that indicates continuation. Continued lines can be difficult to read, since lines can break inthe middle of a word. If you prefer, you can make Emacs insert anewline automatically when a line gets too long, by using Auto Fillmode. Or enable Long Lines mode, which ensures that wrapping onlyoccurs between words. @xref{Filling}.@cindex truncation@cindex line truncation, and fringes Emacs can optionally @dfn{truncate} long lines---this meansdisplaying just one screen line worth, and the rest of the long linedoes not appear at all. @samp{$} in the last column or a smallstraight arrow in the window's right fringe indicates a truncatedline. @xref{Line Truncation}, for more about line truncation,and other variables that control how text is displayed.@node Position Info@section Cursor Position Information Here are commands to get information about the size and position ofparts of the buffer, and to count lines.@table @kbd@item M-x what-pageDisplay the page number of point, and the line number within that page.@item M-x what-lineDisplay the line number of point in the whole buffer.@item M-x line-number-mode@itemx M-x column-number-modeToggle automatic display of the current line number or column number.@xref{Optional Mode Line}.@item M-=Display the number of lines in the current region (@code{count-lines-region}).@xref{Mark}, for information about the region.@item C-x =Display the character code of character after point, character position ofpoint, and column of point (@code{what-cursor-position}).@item M-x hl-line-modeEnable or disable highlighting of the current line. @xref{CursorDisplay}.@item M-x size-indication-modeToggle automatic display of the size of the buffer.@xref{Optional Mode Line}.@end table@findex what-page@findex what-line@cindex line number commands@cindex location of point@cindex cursor location@cindex point location @kbd{M-x what-line} displays the current line numberin the echo area. You can also see the current line number in themode line; see @ref{Mode Line}; but if you narrow the buffer, theline number in the mode line is relative to the accessible portion(@pxref{Narrowing}). By contrast, @code{what-line} shows both theline number relative to the narrowed region and the line numberrelative to the whole buffer. @kbd{M-x what-page} counts pages from the beginning of the file, andcounts lines within the page, showing both numbers in the echo area.@xref{Pages}.@kindex M-=@findex count-lines-region Use @kbd{M-=} (@code{count-lines-region}) to displays the number oflines in the region (@pxref{Mark}). @xref{Pages}, for the command@kbd{C-x l} which counts the lines in the current page.@kindex C-x =@findex what-cursor-position The command @kbd{C-x =} (@code{what-cursor-position}) shows whatcursor's column position, and other information about point and thecharacter after it. It displays a line in the echo area that lookslike this:@smallexampleChar: c (99, #o143, #x63) point=28062 of 36168 (78%) column=53@end smallexample The four values after @samp{Char:} describe the character that followspoint, first by showing it and then by giving its character code indecimal, octal and hex. For a non-@acronym{ASCII} multibyte character, these arefollowed by @samp{file} and the character's representation, in hex, inthe buffer's coding system, if that coding system encodes the charactersafely and with a single byte (@pxref{Coding Systems}). If thecharacter's encoding is longer than one byte, Emacs shows @samp{file ...}. However, if the character displayed is in the range 0200 through0377 octal, it may actually stand for an invalid UTF-8 byte read froma file. In Emacs, that byte is represented as a sequence of 8-bitcharacters, but all of them together display as the original invalidbyte, in octal code. In this case, @kbd{C-x =} shows @samp{part ofdisplay ...} instead of @samp{file}. @samp{point=} is followed by the position of point expressed as acharacter count. The start of the buffer is position 1, one characterlater is position 2, and so on. The next, larger, number is the totalnumber of characters in the buffer. Afterward in parentheses comesthe position expressed as a percentage of the total size. @samp{column=} is followed by the horizontal position of point, incolumns from the left edge of the window. If the buffer has been narrowed, making some of the text at thebeginning and the end temporarily inaccessible, @kbd{C-x =} displaysadditional text describing the currently accessible range. For example, itmight display this:@smallexampleChar: C (67, #o103, #x43) point=252 of 889 (28%) <231-599> column=0@end smallexample@noindentwhere the two extra numbers give the smallest and largest characterposition that point is allowed to assume. The characters between thosetwo positions are the accessible ones. @xref{Narrowing}. If point is at the end of the buffer (or the end of the accessiblepart), the @w{@kbd{C-x =}} output does not describe a character afterpoint. The output might look like this:@smallexamplepoint=36169 of 36168 (EOB) column=0@end smallexample@cindex character set of character at point@cindex font of character at point@cindex text properties at point @w{@kbd{C-u C-x =}} displays the following additional information about acharacter.@itemize @bullet@itemThe character set name, and the codes that identify the characterwithin that character set; @acronym{ASCII} characters are identifiedas belonging to the @code{ascii} character set.@itemThe character's syntax and categories.@itemThe character's encodings, both internally in the buffer, and externallyif you were to save the file.@itemWhat keys to type to input the character in the current input method(if it supports the character).@itemIf you are running Emacs on a graphical display, the font name andglyph code for the character. If you are running Emacs on a text-onlyterminal, the code(s) sent to the terminal.@itemThe character's text properties (@pxref{Text Properties,,,elisp, the Emacs Lisp Reference Manual}), and any overlays containing it(@pxref{Overlays,,, elisp, the same manual}).@end itemize Here's an example showing the Latin-1 character A with grave accent,in a buffer whose coding system is @code{iso-latin-1}, whoseterminal coding system is @code{iso-latin-1} (so the terminal actuallydisplays the character as @samp{@`A}), and which has font-lock-mode(@pxref{Font Lock}) enabled:@smallexample character: @`A (2240, #o4300, #x8c0, U+00C0) charset: latin-iso8859-1 (Right-Hand Part of Latin Alphabet 1@dots{} code point: #x40 syntax: w which means: word category: l:Latin to input: type "`A" with latin-1-prefixbuffer code: #x81 #xC0 file code: #xC0 (encoded by coding system iso-latin-1) display: terminal code #xC0There are text properties here: fontified t@end smallexample@node Arguments@section Numeric Arguments@cindex numeric arguments@cindex prefix arguments@cindex arguments to commands In mathematics and computer usage, @dfn{argument} means``data provided to a function or operation.'' You can give any Emacscommand a @dfn{numeric argument} (also called a @dfn{prefix argument}).Some commands interpret the argument as a repetition count. Forexample, @kbd{C-f} with an argument of ten moves forward ten charactersinstead of one. With these commands, no argument is equivalent to anargument of one. Negative arguments tell most such commands to move oract in the opposite direction.@kindex M-1@kindex M-@t{-}@findex digit-argument@findex negative-argument If your terminal keyboard has a @key{META} key (labeled @key{ALT} onPC keyboards), the easiest way to specify a numeric argument is totype digits and/or a minus sign while holding down the @key{META} key.For example,@exampleM-5 C-n@end example@noindentmoves down five lines. The characters @kbd{Meta-1}, @kbd{Meta-2},and so on, as well as @kbd{Meta--}, do this because they are keys boundto commands (@code{digit-argument} and @code{negative-argument}) thatare defined to set up an argument for the next command.@kbd{Meta--} without digits normally means @minus{}1. Digits and@kbd{-} modified with Control, or Control and Meta, also specify numericarguments.@kindex C-u@findex universal-argument You can also specify a numeric argument by typing @kbd{C-u}(@code{universal-argument}) followed by the digits. The advantage of@kbd{C-u} is that you can type the digits without modifier keys; thus,@kbd{C-u} works on all terminals. For a negative argument, type aminus sign after @kbd{C-u}. A minus sign without digits normallymeans @minus{}1. @kbd{C-u} alone has the special meaning of``four times'': it multiplies the argument for the next command byfour. @kbd{C-u C-u} multiplies it by sixteen. Thus, @kbd{C-u C-uC-f} moves forward sixteen characters. This is a good way to moveforward ``fast,'' since it moves about 1/5 of a line in the usual sizescreen. Other useful combinations are @kbd{C-u C-n}, @kbd{C-u C-uC-n} (move down a good fraction of a screen), @kbd{C-u C-u C-o} (make``a lot'' of blank lines), and @kbd{C-u C-k} (kill four lines). Some commands care whether there is an argument, but ignore itsvalue. 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}.) Plain @kbd{C-u}is a handy way of providing an argument for such commands. Some commands use the value of the argument as a repeat count, but dosomething peculiar when there is no argument. For example, the command@kbd{C-k} (@code{kill-line}) with argument @var{n} kills @var{n} lines,including their terminating newlines. But @kbd{C-k} with no argument isspecial: it kills the text up to the next newline, or, if point is right atthe end of the line, it kills the newline itself. Thus, two @kbd{C-k}commands with no arguments can kill a nonblank line, just like @kbd{C-k}with an argument of one. (@xref{Killing}, for more information on@kbd{C-k}.) A few commands treat a plain @kbd{C-u} differently from an ordinaryargument. A few others may treat an argument of just a minus signdifferently from an argument of @minus{}1. These unusual cases aredescribed when they come up; they exist to make an individual commandmore convenient, and they are documented in that command'sdocumentation string. You can use a numeric argument before a self-inserting character toinsert multiple copies of it. This is straightforward when thecharacter is not a digit; for example, @kbd{C-u 6 4 a} inserts 64copies of the character @samp{a}. But this does not work forinserting digits; @kbd{C-u 6 4 1} specifies an argument of 641. Youcan separate the argument from the digit to insert with another@kbd{C-u}; for example, @kbd{C-u 6 4 C-u 1} does insert 64 copies ofthe character @samp{1}. We use the term ``prefix argument'' as well as ``numeric argument,''to emphasize that you type these argument before the command, and todistinguish them from minibuffer arguments that come after thecommand.@node Repeating@section Repeating a Command@cindex repeating a command Many simple commands, such as those invoked with a single key orwith @kbd{M-x @var{command-name} @key{RET}}, can be repeated byinvoking them with a numeric argument that serves as a repeat count(@pxref{Arguments}). However, if the command you want to repeatprompts for input, or uses a numeric argument in another way, thatmethod won't work.@kindex C-x z@findex repeat The command @kbd{C-x z} (@code{repeat}) provides another way to repeatan Emacs command many times. This command repeats the previous Emacscommand, whatever that was. Repeating a command uses the same argumentsthat were used before; it does not read new arguments each time. To repeat the command more than once, type additional @kbd{z}'s: each@kbd{z} repeats the command one more time. Repetition ends when youtype a character other than @kbd{z}, or press a mouse button. For example, suppose you type @kbd{C-u 2 0 C-d} to delete 20characters. You can repeat that command (including its argument) threeadditional times, to delete a total of 80 characters, by typing @kbd{C-xz z z}. The first @kbd{C-x z} repeats the command once, and eachsubsequent @kbd{z} repeats it once again.@ignore arch-tag: cda8952a-c439-41c1-aecf-4bc0d6482956@end ignore