Mercurial > emacs
annotate man/basic.texi @ 39625:e441240482b2
(add-change-log-entry): Skip copyright notice
and copying permission notice at start of file, if any.
Make use of terms "entry" and "item" accord with Emacs manual.
Simplify the logic for moving point while entering or creating
an entry and then an item.
(add-change-log-entry-other-window): Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 06 Oct 2001 02:32:54 +0000 |
parents | 3b40423b9355 |
children | c66f34e7d2cd |
rev | line source |
---|---|
25829 | 1 @c This is part of the Emacs manual. |
39287 | 2 @c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 Free Software Foundation, Inc. |
25829 | 3 @c See file emacs.texi for copying conditions. |
4 @node Basic, Minibuffer, Exiting, Top | |
5 @chapter Basic Editing Commands | |
6 | |
7 @kindex C-h t | |
8 @findex help-with-tutorial | |
9 We now give the basics of how to enter text, make corrections, and | |
10 save the text in a file. If this material is new to you, you might | |
11 learn it more easily by running the Emacs learn-by-doing tutorial. To | |
12 use the tutorial, run Emacs and type @kbd{Control-h t} | |
13 (@code{help-with-tutorial}). | |
14 | |
15 To clear the screen and redisplay, type @kbd{C-l} (@code{recenter}). | |
16 | |
17 @menu | |
18 | |
19 * Inserting Text:: Inserting text by simply typing it. | |
20 * Moving Point:: How to move the cursor to the place where you want to | |
21 change something. | |
22 * Erasing:: Deleting and killing text. | |
23 * Undo:: Undoing recent changes in the text. | |
24 * Files: Basic Files. Visiting, creating, and saving files. | |
25 * Help: Basic Help. Asking what a character does. | |
26 * Blank Lines:: Commands to make or delete blank lines. | |
27 * Continuation Lines:: Lines too wide for the screen. | |
28 * Position Info:: What page, line, row, or column is point on? | |
29 * Arguments:: Numeric arguments for repeating a command. | |
30 * Repeating:: A short-cut for repeating the previous command. | |
31 @end menu | |
32 | |
33 @node Inserting Text | |
34 @section Inserting Text | |
35 | |
36 @cindex insertion | |
37 @cindex graphic characters | |
38 To insert printing characters into the text you are editing, just type | |
39 them. This inserts the characters you type into the buffer at the | |
40 cursor (that is, at @dfn{point}; @pxref{Point}). The cursor moves | |
41 forward, and any text after the cursor moves forward too. If the text | |
42 in the buffer is @samp{FOOBAR}, with the cursor before the @samp{B}, | |
43 then if you type @kbd{XX}, you get @samp{FOOXXBAR}, with the cursor | |
44 still before the @samp{B}. | |
45 | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
46 To @dfn{delete} text you have just inserted, use the large key |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
47 labeled @key{DEL}, @key{BACKSPACE} or @key{DELETE} which is a short |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
48 distance above the @key{RET} or @key{ENTER} key. This is the key you |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
49 normally use, outside Emacs, for erasing the last character that you |
37988 | 50 typed. Regardless of the label on that key, Emacs thinks of it as |
51 @key{DEL}, and that's what we call it in this manual. | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
52 |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
53 The @key{DEL} key deletes the character @emph{before} the cursor. |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
54 As a consequence, the cursor and all the characters after it move |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
55 backwards. If you type a printing character and then type @key{DEL}, |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
56 they cancel out. |
25829 | 57 |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
58 On most computers, Emacs recognizes automatically which key ought to |
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
59 be @key{DEL}, and sets it up that way. But in some cases, especially |
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
60 with text-only terminals, you will need to tell Emacs which key to use |
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
61 for that purpose. If the large key not far above the @key{RET} or |
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
62 @key{ENTER} key doesn't delete backwards, you need to do this. |
38767
5889c45fd6ad
Change the name of the "DEL Doesn't Delete" node to "DEL Does Not Delete",
Eli Zaretskii <eliz@gnu.org>
parents:
38738
diff
changeset
|
63 @xref{DEL Does Not Delete}, for an explanation of how. |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36724
diff
changeset
|
64 |
37356
c9bd237ce092
Minor clarification of case where both BACKSPACE and DELETE are
Richard M. Stallman <rms@gnu.org>
parents:
37152
diff
changeset
|
65 Most PC keyboards have both a @key{BACKSPACE} key a short ways above |
c9bd237ce092
Minor clarification of case where both BACKSPACE and DELETE are
Richard M. Stallman <rms@gnu.org>
parents:
37152
diff
changeset
|
66 @key{RET} or @key{ENTER}, and a @key{DELETE} key elsewhere. On these |
c9bd237ce092
Minor clarification of case where both BACKSPACE and DELETE are
Richard M. Stallman <rms@gnu.org>
parents:
37152
diff
changeset
|
67 keyboards, Emacs supports when possible the usual convention that the |
c9bd237ce092
Minor clarification of case where both BACKSPACE and DELETE are
Richard M. Stallman <rms@gnu.org>
parents:
37152
diff
changeset
|
68 @key{BACKSPACE} key deletes backwards (it is @key{DEL}), while the |
c9bd237ce092
Minor clarification of case where both BACKSPACE and DELETE are
Richard M. Stallman <rms@gnu.org>
parents:
37152
diff
changeset
|
69 @key{DELETE} key deletes ``forwards,'' deleting the character after |
c9bd237ce092
Minor clarification of case where both BACKSPACE and DELETE are
Richard M. Stallman <rms@gnu.org>
parents:
37152
diff
changeset
|
70 point, the one underneath the cursor, like @kbd{C-d} (see below). |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
71 |
25829 | 72 @kindex RET |
73 @cindex newline | |
74 To end a line and start typing a new one, type @key{RET}. This | |
75 inserts a newline character in the buffer. If point is in the middle of | |
76 a line, @key{RET} splits the line. Typing @key{DEL} when the cursor is | |
77 at the beginning of a line deletes the preceding newline, thus joining | |
78 the line with the preceding line. | |
79 | |
80 Emacs can split lines automatically when they become too long, if you | |
81 turn on a special minor mode called @dfn{Auto Fill} mode. | |
82 @xref{Filling}, for how to use Auto Fill mode. | |
83 | |
84 If you prefer to have text characters replace (overwrite) existing | |
85 text rather than shove it to the right, you can enable Overwrite mode, | |
86 a minor mode. @xref{Minor Modes}. | |
87 | |
88 @cindex quoting | |
89 @kindex C-q | |
90 @findex quoted-insert | |
91 Direct insertion works for printing characters and @key{SPC}, but other | |
92 characters act as editing commands and do not insert themselves. If you | |
93 need to insert a control character or a character whose code is above 200 | |
94 octal, you must @dfn{quote} it by typing the character @kbd{Control-q} | |
95 (@code{quoted-insert}) first. (This character's name is normally written | |
96 @kbd{C-q} for short.) There are two ways to use @kbd{C-q}:@refill | |
97 | |
98 @itemize @bullet | |
99 @item | |
100 @kbd{C-q} followed by any non-graphic character (even @kbd{C-g}) | |
101 inserts that character. | |
102 | |
103 @item | |
104 @kbd{C-q} followed by a sequence of octal digits inserts the character | |
105 with the specified octal character code. You can use any number of | |
37152 | 106 octal digits; any non-digit terminates the sequence. If the |
107 terminating character is @key{RET}, it serves only to terminate the | |
108 sequence. Any other non-digit terminates the sequence and then acts | |
109 as normal input---thus, @kbd{C-q 1 0 1 B} inserts @samp{AB}. | |
110 | |
111 The use of octal sequences is disabled in ordinary non-binary | |
112 Overwrite mode, to give you a convenient way to insert a digit instead | |
113 of overwriting with it. | |
25829 | 114 @end itemize |
115 | |
33552
82d0163f6fb7
Say "ISO 8859" instead of "ISO Latin", to cover non-Latin ISO-8859
Eli Zaretskii <eliz@gnu.org>
parents:
33518
diff
changeset
|
116 @cindex 8-bit character codes |
25829 | 117 @noindent |
33518 | 118 When multibyte characters are enabled, if you specify a code in the |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
119 range 0200 through 0377 octal, @kbd{C-q} assumes that you intend to |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
120 use some ISO 8859-@var{n} character set, and converts the specified |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
121 code to the corresponding Emacs character code. @xref{Enabling |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
122 Multibyte}. You select @emph{which} of the ISO 8859 character sets to |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
123 use through your choice of language environment (@pxref{Language |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
124 Environments}). |
25829 | 125 |
126 @vindex read-quoted-char-radix | |
127 To use decimal or hexadecimal instead of octal, set the variable | |
128 @code{read-quoted-char-radix} to 10 or 16. If the radix is greater than | |
129 10, some letters starting with @kbd{a} serve as part of a character | |
130 code, just like digits. | |
131 | |
132 A numeric argument to @kbd{C-q} specifies how many copies of the | |
133 quoted character should be inserted (@pxref{Arguments}). | |
134 | |
135 @findex newline | |
136 @findex self-insert | |
137 Customization information: @key{DEL} in most modes runs the command | |
138 @code{delete-backward-char}; @key{RET} runs the command @code{newline}, and | |
139 self-inserting printing characters run the command @code{self-insert}, | |
140 which inserts whatever character was typed to invoke it. Some major modes | |
141 rebind @key{DEL} to other commands. | |
142 | |
143 @node Moving Point | |
144 @section Changing the Location of Point | |
145 | |
146 @cindex arrow keys | |
147 @cindex moving point | |
148 @cindex movement | |
149 @cindex cursor motion | |
150 @cindex moving the cursor | |
151 To do more than insert characters, you have to know how to move point | |
152 (@pxref{Point}). The simplest way to do this is with arrow keys, or by | |
153 clicking the left mouse button where you want to move to. | |
154 | |
155 There are also control and meta characters for cursor motion. Some | |
156 are equivalent to the arrow keys (these date back to the days before | |
157 terminals had arrow keys, and are usable on terminals which don't have | |
158 them). Others do more sophisticated things. | |
159 | |
160 @kindex C-a | |
161 @kindex C-e | |
162 @kindex C-f | |
163 @kindex C-b | |
164 @kindex C-n | |
165 @kindex C-p | |
166 @kindex M-> | |
167 @kindex M-< | |
168 @kindex M-r | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
169 @kindex LEFT |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
170 @kindex RIGHT |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
171 @kindex UP |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
172 @kindex DOWN |
25829 | 173 @findex beginning-of-line |
174 @findex end-of-line | |
175 @findex forward-char | |
176 @findex backward-char | |
177 @findex next-line | |
178 @findex previous-line | |
179 @findex beginning-of-buffer | |
180 @findex end-of-buffer | |
181 @findex goto-char | |
182 @findex goto-line | |
183 @findex move-to-window-line | |
184 @table @kbd | |
185 @item C-a | |
186 Move to the beginning of the line (@code{beginning-of-line}). | |
187 @item C-e | |
188 Move to the end of the line (@code{end-of-line}). | |
189 @item C-f | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
190 Move forward one character (@code{forward-char}). The right-arrow key |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
191 does the same thing. |
25829 | 192 @item C-b |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
193 Move backward one character (@code{backward-char}). The left-arrow |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
194 key has the same effect. |
25829 | 195 @item M-f |
196 Move forward one word (@code{forward-word}). | |
197 @item M-b | |
198 Move backward one word (@code{backward-word}). | |
199 @item C-n | |
200 Move down one line, vertically (@code{next-line}). This command | |
201 attempts to keep the horizontal position unchanged, so if you start in | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
202 the middle of one line, you end in the middle of the next. The |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
203 down-arrow key does the same thing. |
25829 | 204 @item C-p |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
205 Move up one line, vertically (@code{previous-line}). The up-arrow key |
36651
f16f21a469b1
(Moving Point): Mention C-v and M-v, and the arrow keys.
Eli Zaretskii <eliz@gnu.org>
parents:
36263
diff
changeset
|
206 has the same effect. |
25829 | 207 @item M-r |
208 Move point to left margin, vertically centered in the window | |
209 (@code{move-to-window-line}). Text does not move on the screen. | |
210 | |
211 A numeric argument says which screen line to place point on. It counts | |
212 screen lines down from the top of the window (zero for the top line). A | |
213 negative argument counts lines from the bottom (@minus{}1 for the bottom | |
214 line). | |
215 @item M-< | |
216 Move to the top of the buffer (@code{beginning-of-buffer}). With | |
217 numeric argument @var{n}, move to @var{n}/10 of the way from the top. | |
218 @xref{Arguments}, for more information on numeric arguments.@refill | |
219 @item M-> | |
220 Move to the end of the buffer (@code{end-of-buffer}). | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
221 @item C-v |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
222 Scroll the display one screen forward, and move point if necessary to put |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
223 it on the screen (@code{scroll-up}). This doesn't always |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
224 move point, but it is commonly used to do so. |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
225 If your keyboard has a @key{PAGEDOWN} key, it does the same thing. |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
226 |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
227 Scrolling commands are further described in @ref{Scrolling}. |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
228 @item M-v |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
229 Scroll one screen backward, and move point if necessary to put it on |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
230 the screen (@code{scroll-down}). This doesn't always move point, but |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
231 it is commonly used to do so. The @key{PAGEUP} key has the same |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
232 effect. |
25829 | 233 @item M-x goto-char |
234 Read a number @var{n} and move point to buffer position @var{n}. | |
235 Position 1 is the beginning of the buffer. | |
236 @item M-x goto-line | |
237 Read a number @var{n} and move point to line number @var{n}. Line 1 | |
238 is the beginning of the buffer. | |
239 @item C-x C-n | |
240 @findex set-goal-column | |
241 @kindex C-x C-n | |
242 Use the current column of point as the @dfn{semipermanent goal column} for | |
243 @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}). Henceforth, those | |
244 commands always move to this column in each line moved into, or as | |
245 close as possible given the contents of the line. This goal column remains | |
246 in effect until canceled. | |
247 @item C-u C-x C-n | |
248 Cancel the goal column. Henceforth, @kbd{C-n} and @kbd{C-p} once | |
249 again try to stick to a fixed horizontal position, as usual. | |
250 @end table | |
251 | |
252 @vindex track-eol | |
253 If you set the variable @code{track-eol} to a non-@code{nil} value, | |
38172 | 254 then @kbd{C-n} and @kbd{C-p}, when starting at the end of the line, move |
25829 | 255 to the end of another line. Normally, @code{track-eol} is @code{nil}. |
256 @xref{Variables}, for how to set variables such as @code{track-eol}. | |
257 | |
258 @vindex next-line-add-newlines | |
35923 | 259 @kbd{C-n} normally gets an error when you use it on the last line of |
260 the buffer (just as @kbd{C-p} gets an error on the first line). But | |
261 if you set the variable @code{next-line-add-newlines} to a | |
262 non-@code{nil} value, @kbd{C-n} on the last line of a buffer creates | |
263 an additional line at the end and moves down onto it. | |
25829 | 264 |
265 @node Erasing | |
266 @section Erasing Text | |
267 | |
268 @table @kbd | |
269 @item @key{DEL} | |
270 Delete the character before point (@code{delete-backward-char}). | |
271 @item C-d | |
272 Delete the character after point (@code{delete-char}). | |
36724
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
273 @item @key{DELETE} |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
274 @itemx @key{BACKSPACE} |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
275 One of these keys, whichever is the large key above the @key{RET} or |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
276 @key{ENTER} key, deletes the character before point, like @key{DEL}. |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
277 If that is @key{BACKSPACE}, and your keyboard also has @key{DELETE}, |
c3461a4e8d2e
Clarify BACKSPACE vs DELETE. Mention delete-key-deletes-forward-mode.
Richard M. Stallman <rms@gnu.org>
parents:
36654
diff
changeset
|
278 then @key{DELETE} deletes forwards, like @kbd{C-d}. |
25829 | 279 @item C-k |
280 Kill to the end of the line (@code{kill-line}). | |
281 @item M-d | |
282 Kill forward to the end of the next word (@code{kill-word}). | |
283 @item M-@key{DEL} | |
284 Kill back to the beginning of the previous word | |
285 (@code{backward-kill-word}). | |
286 @end table | |
287 | |
288 @cindex killing characters and lines | |
289 @cindex deleting characters and lines | |
290 @cindex erasing characters and lines | |
291 You already know about the @key{DEL} key which deletes the character | |
292 before point (that is, before the cursor). Another key, @kbd{Control-d} | |
293 (@kbd{C-d} for short), deletes the character after point (that is, the | |
294 character that the cursor is on). This shifts the rest of the text on | |
295 the line to the left. If you type @kbd{C-d} at the end of a line, it | |
296 joins together that line and the next line. | |
297 | |
298 To erase a larger amount of text, use the @kbd{C-k} key, which kills a | |
299 line at a time. If you type @kbd{C-k} at the beginning or middle of a | |
300 line, it kills all the text up to the end of the line. If you type | |
301 @kbd{C-k} at the end of a line, it joins that line and the next line. | |
302 | |
303 @xref{Killing}, for more flexible ways of killing text. | |
304 | |
305 @node Undo | |
306 @section Undoing Changes | |
307 @cindex undo | |
308 @cindex changes, undoing | |
309 | |
310 You can undo all the recent changes in the buffer text, up to a | |
311 certain point. Each buffer records changes individually, and the undo | |
312 command always applies to the current buffer. Usually each editing | |
313 command makes a separate entry in the undo records, but some commands | |
314 such as @code{query-replace} make many entries, and very simple commands | |
315 such as self-inserting characters are often grouped to make undoing less | |
316 tedious. | |
317 | |
318 @table @kbd | |
319 @item C-x u | |
320 Undo one batch of changes---usually, one command worth (@code{undo}). | |
321 @item C-_ | |
322 The same. | |
323 @item C-u C-x u | |
324 Undo one batch of changes in the region. | |
325 @end table | |
326 | |
327 @kindex C-x u | |
328 @kindex C-_ | |
329 @findex undo | |
330 The command @kbd{C-x u} or @kbd{C-_} is how you undo. The first time | |
331 you give this command, it undoes the last change. Point moves back to | |
332 where it was before the command that made the change. | |
333 | |
334 Consecutive repetitions of @kbd{C-_} or @kbd{C-x u} undo earlier and | |
335 earlier changes, back to the limit of the undo information available. | |
336 If all recorded changes have already been undone, the undo command | |
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38767
diff
changeset
|
337 displays an error message and does nothing. |
25829 | 338 |
339 Any command other than an undo command breaks the sequence of undo | |
340 commands. Starting from that moment, the previous undo commands become | |
341 ordinary changes that you can undo. Thus, to redo changes you have | |
342 undone, type @kbd{C-f} or any other command that will harmlessly break | |
343 the sequence of undoing, then type more undo commands. | |
344 | |
345 @cindex selective undo | |
346 @kindex C-u C-x u | |
347 Ordinary undo applies to all changes made in the current buffer. You | |
348 can also perform @dfn{selective undo}, limited to the current region. | |
349 To do this, specify the region you want, then run the @code{undo} | |
350 command with a prefix argument (the value does not matter): @kbd{C-u C-x | |
351 u} or @kbd{C-u C-_}. This undoes the most recent change in the region. | |
352 To undo further changes in the same region, repeat the @code{undo} | |
353 command (no prefix argument is needed). In Transient Mark mode, any use | |
354 of @code{undo} when there is an active region performs selective undo; | |
355 you do not need a prefix argument. | |
356 | |
357 If you notice that a buffer has been modified accidentally, the | |
358 easiest way to recover is to type @kbd{C-_} repeatedly until the stars | |
359 disappear from the front of the mode line. At this time, all the | |
360 modifications you made have been canceled. Whenever an undo command | |
361 makes the stars disappear from the mode line, it means that the buffer | |
362 contents are the same as they were when the file was last read in or | |
363 saved. | |
364 | |
365 If you do not remember whether you changed the buffer deliberately, | |
366 type @kbd{C-_} once. When you see the last change you made undone, you | |
367 will see whether it was an intentional change. If it was an accident, | |
368 leave it undone. If it was deliberate, redo the change as described | |
369 above. | |
370 | |
371 Not all buffers record undo information. Buffers whose names start with | |
372 spaces don't; these buffers are used internally by Emacs and its extensions | |
373 to hold text that users don't normally look at or edit. | |
374 | |
375 You cannot undo mere cursor motion; only changes in the buffer | |
376 contents save undo information. However, some cursor motion commands | |
377 set the mark, so if you use these commands from time to time, you can | |
378 move back to the neighborhoods you have moved through by popping the | |
379 mark ring (@pxref{Mark Ring}). | |
380 | |
381 @vindex undo-limit | |
382 @vindex undo-strong-limit | |
383 @cindex undo limit | |
384 When the undo information for a buffer becomes too large, Emacs | |
385 discards the oldest undo information from time to time (during garbage | |
386 collection). You can specify how much undo information to keep by | |
387 setting two variables: @code{undo-limit} and @code{undo-strong-limit}. | |
388 Their values are expressed in units of bytes of space. | |
389 | |
390 The variable @code{undo-limit} sets a soft limit: Emacs keeps undo | |
391 data for enough commands to reach this size, and perhaps exceed it, but | |
392 does not keep data for any earlier commands beyond that. Its default | |
393 value is 20000. The variable @code{undo-strong-limit} sets a stricter | |
394 limit: the command which pushes the size past this amount is itself | |
395 forgotten. Its default value is 30000. | |
396 | |
397 Regardless of the values of those variables, the most recent change is | |
398 never discarded, so there is no danger that garbage collection occurring | |
399 right after an unintentional large change might prevent you from undoing | |
400 it. | |
401 | |
402 The reason the @code{undo} command has two keys, @kbd{C-x u} and | |
403 @kbd{C-_}, set up to run it is that it is worthy of a single-character | |
404 key, but on some keyboards it is not obvious how to type @kbd{C-_}. | |
405 @kbd{C-x u} is an alternative you can type straightforwardly on any | |
406 terminal. | |
407 | |
408 @node Basic Files | |
409 @section Files | |
410 | |
411 The commands described above are sufficient for creating and altering | |
412 text in an Emacs buffer; the more advanced Emacs commands just make | |
413 things easier. But to keep any text permanently you must put it in a | |
414 @dfn{file}. Files are named units of text which are stored by the | |
415 operating system for you to retrieve later by name. To look at or use | |
416 the contents of a file in any way, including editing the file with | |
417 Emacs, you must specify the file name. | |
418 | |
419 Consider a file named @file{/usr/rms/foo.c}. In Emacs, to begin editing | |
420 this file, type | |
421 | |
422 @example | |
423 C-x C-f /usr/rms/foo.c @key{RET} | |
424 @end example | |
425 | |
426 @noindent | |
427 Here the file name is given as an @dfn{argument} to the command @kbd{C-x | |
428 C-f} (@code{find-file}). That command uses the @dfn{minibuffer} to | |
429 read the argument, and you type @key{RET} to terminate the argument | |
430 (@pxref{Minibuffer}).@refill | |
431 | |
432 Emacs obeys the command by @dfn{visiting} the file: creating a buffer, | |
433 copying the contents of the file into the buffer, and then displaying | |
434 the buffer for you to edit. If you alter the text, you can @dfn{save} | |
435 the new text in the file by typing @kbd{C-x C-s} (@code{save-buffer}). | |
436 This makes the changes permanent by copying the altered buffer contents | |
437 back into the file @file{/usr/rms/foo.c}. Until you save, the changes | |
438 exist only inside Emacs, and the file @file{foo.c} is unaltered. | |
439 | |
440 To create a file, just visit the file with @kbd{C-x C-f} as if it | |
441 already existed. This creates an empty buffer in which you can insert | |
442 the text you want to put in the file. The file is actually created when | |
443 you save this buffer with @kbd{C-x C-s}. | |
444 | |
445 Of course, there is a lot more to learn about using files. @xref{Files}. | |
446 | |
447 @node Basic Help | |
448 @section Help | |
449 | |
450 @cindex getting help with keys | |
451 If you forget what a key does, you can find out with the Help | |
452 character, which is @kbd{C-h} (or @key{F1}, which is an alias for | |
453 @kbd{C-h}). Type @kbd{C-h k} followed by the key you want to know | |
454 about; for example, @kbd{C-h k C-n} tells you all about what @kbd{C-n} | |
455 does. @kbd{C-h} is a prefix key; @kbd{C-h k} is just one of its | |
456 subcommands (the command @code{describe-key}). The other subcommands of | |
457 @kbd{C-h} provide different kinds of help. Type @kbd{C-h} twice to get | |
458 a description of all the help facilities. @xref{Help}.@refill | |
459 | |
460 @node Blank Lines | |
461 @section Blank Lines | |
462 | |
463 @cindex inserting blank lines | |
464 @cindex deleting blank lines | |
465 Here are special commands and techniques for putting in and taking out | |
466 blank lines. | |
467 | |
468 @table @kbd | |
469 @item C-o | |
470 Insert one or more blank lines after the cursor (@code{open-line}). | |
471 @item C-x C-o | |
472 Delete all but one of many consecutive blank lines | |
473 (@code{delete-blank-lines}). | |
474 @end table | |
475 | |
476 @kindex C-o | |
477 @kindex C-x C-o | |
478 @cindex blank lines | |
479 @findex open-line | |
480 @findex delete-blank-lines | |
481 When you want to insert a new line of text before an existing line, you | |
482 can do it by typing the new line of text, followed by @key{RET}. | |
483 However, it may be easier to see what you are doing if you first make a | |
484 blank line and then insert the desired text into it. This is easy to do | |
485 using the key @kbd{C-o} (@code{open-line}), which inserts a newline | |
486 after point but leaves point in front of the newline. After @kbd{C-o}, | |
487 type the text for the new line. @kbd{C-o F O O} has the same effect as | |
488 @w{@kbd{F O O @key{RET}}}, except for the final location of point. | |
489 | |
490 You can make several blank lines by typing @kbd{C-o} several times, or | |
491 by giving it a numeric argument to tell it how many blank lines to make. | |
492 @xref{Arguments}, for how. If you have a fill prefix, then @kbd{C-o} | |
493 command inserts the fill prefix on the new line, when you use it at the | |
494 beginning of a line. @xref{Fill Prefix}. | |
495 | |
496 The easy way to get rid of extra blank lines is with the command | |
497 @kbd{C-x C-o} (@code{delete-blank-lines}). @kbd{C-x C-o} in a run of | |
498 several blank lines deletes all but one of them. @kbd{C-x C-o} on a | |
499 solitary blank line deletes that blank line. When point is on a | |
500 nonblank line, @kbd{C-x C-o} deletes any blank lines following that | |
501 nonblank line. | |
502 | |
503 @node Continuation Lines | |
504 @section Continuation Lines | |
505 | |
506 @cindex continuation line | |
507 @cindex wrapping | |
508 @cindex line wrapping | |
509 If you add too many characters to one line without breaking it with | |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
510 @key{RET}, the line grows to occupy two (or more) lines on the screen. |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
511 On graphical displays, Emacs indicates line wrapping with small bent |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
512 arrows in the fringes to the left and right of the window. On |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
513 text-only terminals, Emacs displays a @samp{\} character at the right |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
514 margin of a screen line if it is not the last in its text line. This |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
515 @samp{\} character says that the following screen line is not really a |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
516 distinct line in the text, just a @dfn{continuation} of a line too |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
517 long to fit the screen. Continuation is also called @dfn{line |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
518 wrapping}. |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
519 |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
520 When line wrapping occurs before a character that is wider than one |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
521 column, some columns at the end of the previous screen line may be |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
522 ``empty.'' In this case, Emacs displays additional @samp{\} |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
523 characters in the ``empty'' columns, just before the @samp{\} |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
524 character that indicates continuation. |
25829 | 525 |
526 Sometimes it is nice to have Emacs insert newlines automatically when | |
527 a line gets too long. Continuation on the screen does not do that. Use | |
528 Auto Fill mode (@pxref{Filling}) if that's what you want. | |
529 | |
530 @vindex truncate-lines | |
531 @cindex truncation | |
532 As an alternative to continuation, Emacs can display long lines by | |
35206 | 533 @dfn{truncation}. This means that all the characters that do not fit |
534 in the width of the screen or window do not appear at all. They | |
535 remain in the buffer, temporarily invisible. On terminals, @samp{$} | |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
536 in the last column informs you that the line has been truncated on the |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
537 display. On window systems, a small straight arrow in the fringe to |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
538 the right of the window indicates a truncated line. |
25829 | 539 |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
540 @findex toggle-truncate-lines |
25829 | 541 Truncation instead of continuation happens whenever horizontal |
542 scrolling is in use, and optionally in all side-by-side windows | |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
543 (@pxref{Windows}). You can enable or disable truncation for a |
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
544 particular buffer with the command @kbd{M-x toggle-truncate-lines}. |
31952
9ab15b2742ba
(Continuation Lines): Add description of
Gerd Moellmann <gerd@gnu.org>
parents:
27220
diff
changeset
|
545 |
36209
e80f51792a09
Fix xref to Display Custom.
Richard M. Stallman <rms@gnu.org>
parents:
36140
diff
changeset
|
546 @xref{Display Custom}, for additional variables that affect how text is |
25829 | 547 displayed. |
548 | |
549 @node Position Info | |
550 @section Cursor Position Information | |
551 | |
552 Here are commands to get information about the size and position of | |
553 parts of the buffer, and to count lines. | |
554 | |
555 @table @kbd | |
556 @item M-x what-page | |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
557 Display the page number of point, and the line number within the page. |
25829 | 558 @item M-x what-line |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
559 Display the line number of point in the buffer. |
25829 | 560 @item M-x line-number-mode |
27220
dddb1bca9704
Reference column-number-mode, hl-line-mode, blink-cursor-mode.
Dave Love <fx@gnu.org>
parents:
25829
diff
changeset
|
561 @itemx M-x column-number-mode |
dddb1bca9704
Reference column-number-mode, hl-line-mode, blink-cursor-mode.
Dave Love <fx@gnu.org>
parents:
25829
diff
changeset
|
562 Toggle automatic display of current line number or column number. |
dddb1bca9704
Reference column-number-mode, hl-line-mode, blink-cursor-mode.
Dave Love <fx@gnu.org>
parents:
25829
diff
changeset
|
563 @xref{Optional Mode Line}. |
25829 | 564 @item M-= |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
565 Display the number of lines in the current region (@code{count-lines-region}). |
25829 | 566 @xref{Mark}, for information about the region. |
567 @item C-x = | |
36140
af4e219e9947
Miscellaneous clarifications.
Richard M. Stallman <rms@gnu.org>
parents:
35923
diff
changeset
|
568 Display the character code of character after point, character position of |
25829 | 569 point, and column of point (@code{what-cursor-position}). |
27220
dddb1bca9704
Reference column-number-mode, hl-line-mode, blink-cursor-mode.
Dave Love <fx@gnu.org>
parents:
25829
diff
changeset
|
570 @item M-x hl-line-mode |
38660
65fd4c8a6447
(Position Info): Add a cross-reference to where hl-line-mode is described.
Eli Zaretskii <eliz@gnu.org>
parents:
38541
diff
changeset
|
571 Enable or disable highlighting of the current line. @xref{Cursor |
65fd4c8a6447
(Position Info): Add a cross-reference to where hl-line-mode is described.
Eli Zaretskii <eliz@gnu.org>
parents:
38541
diff
changeset
|
572 Display}. |
25829 | 573 @end table |
574 | |
575 @findex what-page | |
576 @findex what-line | |
577 @cindex line number commands | |
578 @cindex location of point | |
579 @cindex cursor location | |
580 @cindex point location | |
581 There are two commands for working with line numbers. @kbd{M-x | |
582 what-line} computes the current line number and displays it in the echo | |
583 area. To go to a given line by number, use @kbd{M-x goto-line}; it | |
584 prompts you for the number. These line numbers count from one at the | |
585 beginning of the buffer. | |
586 | |
37152 | 587 You can also see the current line number in the mode line; see @ref{Mode |
25829 | 588 Line}. If you narrow the buffer, then the line number in the mode line |
589 is relative to the accessible portion (@pxref{Narrowing}). By contrast, | |
590 @code{what-line} shows both the line number relative to the narrowed | |
591 region and the line number relative to the whole buffer. | |
592 | |
37152 | 593 @kbd{M-x what-page} counts pages from the beginning of the file, and |
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38767
diff
changeset
|
594 counts lines within the page, showing both numbers in the echo area. |
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38767
diff
changeset
|
595 @xref{Pages}. |
25829 | 596 |
597 @kindex M-= | |
598 @findex count-lines-region | |
599 While on this subject, we might as well mention @kbd{M-=} (@code{count-lines-region}), | |
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38767
diff
changeset
|
600 which displays the number of lines in the region (@pxref{Mark}). |
25829 | 601 @xref{Pages}, for the command @kbd{C-x l} which counts the lines in the |
602 current page. | |
603 | |
604 @kindex C-x = | |
605 @findex what-cursor-position | |
606 The command @kbd{C-x =} (@code{what-cursor-position}) can be used to find out | |
607 the column that the cursor is in, and other miscellaneous information about | |
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38767
diff
changeset
|
608 point. It displays a line in the echo area that looks like this: |
25829 | 609 |
610 @smallexample | |
611 Char: c (0143, 99, 0x63) point=21044 of 26883(78%) column 53 | |
612 @end smallexample | |
613 | |
614 @noindent | |
615 (In fact, this is the output produced when point is before the | |
616 @samp{column} in the example.) | |
617 | |
618 The four values after @samp{Char:} describe the character that follows | |
619 point, first by showing it and then by giving its character code in | |
620 octal, decimal and hex. For a non-ASCII multibyte character, these are | |
621 followed by @samp{ext} and the character's representation, in hex, in | |
622 the buffer's coding system, if that coding system encodes the character | |
623 safely and with a single byte (@pxref{Coding Systems}). If the | |
624 character's encoding is longer than one byte, Emacs shows @samp{ext ...}. | |
625 | |
626 @samp{point=} is followed by the position of point expressed as a character | |
627 count. The front of the buffer counts as position 1, one character later | |
628 as 2, and so on. The next, larger, number is the total number of characters | |
629 in the buffer. Afterward in parentheses comes the position expressed as a | |
630 percentage of the total size. | |
631 | |
632 @samp{column} is followed by the horizontal position of point, in | |
633 columns from the left edge of the window. | |
634 | |
635 If the buffer has been narrowed, making some of the text at the | |
38870
d44abb4e68b2
Don't use "print" for displaying a message.
Richard M. Stallman <rms@gnu.org>
parents:
38767
diff
changeset
|
636 beginning and the end temporarily inaccessible, @kbd{C-x =} displays |
25829 | 637 additional text describing the currently accessible range. For example, it |
638 might display this: | |
639 | |
640 @smallexample | |
641 Char: C (0103, 67, 0x43) point=252 of 889(28%) <231 - 599> column 0 | |
642 @end smallexample | |
643 | |
644 @noindent | |
645 where the two extra numbers give the smallest and largest character | |
646 position that point is allowed to assume. The characters between those | |
647 two positions are the accessible ones. @xref{Narrowing}. | |
648 | |
649 If point is at the end of the buffer (or the end of the accessible | |
650 part), the @w{@kbd{C-x =}} output does not describe a character after | |
651 point. The output might look like this: | |
652 | |
653 @smallexample | |
654 point=26957 of 26956(100%) column 0 | |
655 @end smallexample | |
656 | |
657 @w{@kbd{C-u C-x =}} displays additional information about a character, | |
658 in place of the buffer coordinates and column: the character set name | |
659 and the codes that identify the character within that character set; | |
660 ASCII characters are identified as belonging to the @code{ASCII} | |
661 character set. In addition, the full character encoding, even if it | |
662 takes more than a single byte, is shown after @samp{ext}. Here's an | |
663 example for a Latin-1 character A with a grave accent in a buffer whose | |
664 coding system is iso-2022-7bit@footnote{On terminals that support | |
665 Latin-1 characters, the character shown after @samp{Char:} is displayed | |
666 as the actual glyph of A with grave accent.}: | |
667 | |
37152 | 668 @smallexample |
25829 | 669 Char: @`A (04300, 2240, 0x8c0, ext ESC , A @@) (latin-iso8859-1 64) |
37152 | 670 @end smallexample |
25829 | 671 |
672 @node Arguments | |
673 @section Numeric Arguments | |
674 @cindex numeric arguments | |
675 @cindex prefix arguments | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36209
diff
changeset
|
676 @cindex arguments to commands |
25829 | 677 |
678 In mathematics and computer usage, the word @dfn{argument} means | |
679 ``data provided to a function or operation.'' You can give any Emacs | |
680 command a @dfn{numeric argument} (also called a @dfn{prefix argument}). | |
681 Some commands interpret the argument as a repetition count. For | |
682 example, @kbd{C-f} with an argument of ten moves forward ten characters | |
683 instead of one. With these commands, no argument is equivalent to an | |
684 argument of one. Negative arguments tell most such commands to move or | |
685 act in the opposite direction. | |
686 | |
687 @kindex M-1 | |
688 @kindex M-@t{-} | |
689 @findex digit-argument | |
690 @findex negative-argument | |
691 If your terminal keyboard has a @key{META} key, the easiest way to | |
692 specify a numeric argument is to type digits and/or a minus sign while | |
693 holding down the @key{META} key. For example, | |
38729
7d62f0684e99
(Arguments): Say explicitly that M-- is -1. Fix spacing in an @example.
Eli Zaretskii <eliz@gnu.org>
parents:
38660
diff
changeset
|
694 |
25829 | 695 @example |
696 M-5 C-n | |
697 @end example | |
38729
7d62f0684e99
(Arguments): Say explicitly that M-- is -1. Fix spacing in an @example.
Eli Zaretskii <eliz@gnu.org>
parents:
38660
diff
changeset
|
698 |
25829 | 699 @noindent |
700 would move down five lines. The characters @kbd{Meta-1}, @kbd{Meta-2}, | |
701 and so on, as well as @kbd{Meta--}, do this because they are keys bound | |
702 to commands (@code{digit-argument} and @code{negative-argument}) that | |
38729
7d62f0684e99
(Arguments): Say explicitly that M-- is -1. Fix spacing in an @example.
Eli Zaretskii <eliz@gnu.org>
parents:
38660
diff
changeset
|
703 are defined to contribute to an argument for the next command. |
7d62f0684e99
(Arguments): Say explicitly that M-- is -1. Fix spacing in an @example.
Eli Zaretskii <eliz@gnu.org>
parents:
38660
diff
changeset
|
704 @kbd{Meta--} without digits normally means @minus{}1. Digits and |
7d62f0684e99
(Arguments): Say explicitly that M-- is -1. Fix spacing in an @example.
Eli Zaretskii <eliz@gnu.org>
parents:
38660
diff
changeset
|
705 @kbd{-} modified with Control, or Control and Meta, also specify numeric |
7d62f0684e99
(Arguments): Say explicitly that M-- is -1. Fix spacing in an @example.
Eli Zaretskii <eliz@gnu.org>
parents:
38660
diff
changeset
|
706 arguments. |
25829 | 707 |
708 @kindex C-u | |
709 @findex universal-argument | |
710 Another way of specifying an argument is to use the @kbd{C-u} | |
711 (@code{universal-argument}) command followed by the digits of the | |
712 argument. With @kbd{C-u}, you can type the argument digits without | |
713 holding down modifier keys; @kbd{C-u} works on all terminals. To type a | |
714 negative argument, type a minus sign after @kbd{C-u}. Just a minus sign | |
715 without digits normally means @minus{}1. | |
716 | |
717 @kbd{C-u} followed by a character which is neither a digit nor a minus | |
718 sign has the special meaning of ``multiply by four.'' It multiplies the | |
719 argument for the next command by four. @kbd{C-u} twice multiplies it by | |
720 sixteen. Thus, @kbd{C-u C-u C-f} moves forward sixteen characters. This | |
721 is a good way to move forward ``fast,'' since it moves about 1/5 of a line | |
722 in the usual size screen. Other useful combinations are @kbd{C-u C-n}, | |
723 @kbd{C-u C-u C-n} (move down a good fraction of a screen), @kbd{C-u C-u | |
724 C-o} (make ``a lot'' of blank lines), and @kbd{C-u C-k} (kill four | |
725 lines).@refill | |
726 | |
727 Some commands care only about whether there is an argument, and not about | |
728 its value. For example, the command @kbd{M-q} (@code{fill-paragraph}) with | |
729 no argument fills text; with an argument, it justifies the text as well. | |
730 (@xref{Filling}, for more information on @kbd{M-q}.) Plain @kbd{C-u} is a | |
731 handy way of providing an argument for such commands. | |
732 | |
733 Some commands use the value of the argument as a repeat count, but do | |
734 something peculiar when there is no argument. For example, the command | |
735 @kbd{C-k} (@code{kill-line}) with argument @var{n} kills @var{n} lines, | |
736 including their terminating newlines. But @kbd{C-k} with no argument is | |
737 special: it kills the text up to the next newline, or, if point is right at | |
738 the end of the line, it kills the newline itself. Thus, two @kbd{C-k} | |
739 commands with no arguments can kill a nonblank line, just like @kbd{C-k} | |
740 with an argument of one. (@xref{Killing}, for more information on | |
741 @kbd{C-k}.)@refill | |
742 | |
743 A few commands treat a plain @kbd{C-u} differently from an ordinary | |
744 argument. A few others may treat an argument of just a minus sign | |
745 differently from an argument of @minus{}1. These unusual cases are | |
746 described when they come up; they are always for reasons of convenience | |
747 of use of the individual command. | |
748 | |
749 You can use a numeric argument to insert multiple copies of a | |
750 character. This is straightforward unless the character is a digit; for | |
751 example, @kbd{C-u 6 4 a} inserts 64 copies of the character @samp{a}. | |
752 But this does not work for inserting digits; @kbd{C-u 6 4 1} specifies | |
753 an argument of 641, rather than inserting anything. To separate the | |
754 digit to insert from the argument, type another @kbd{C-u}; for example, | |
755 @kbd{C-u 6 4 C-u 1} does insert 64 copies of the character @samp{1}. | |
756 | |
757 We use the term ``prefix argument'' as well as ``numeric argument'' to | |
758 emphasize that you type the argument before the command, and to | |
759 distinguish these arguments from minibuffer arguments that come after | |
760 the command. | |
761 | |
762 @node Repeating | |
763 @section Repeating a Command | |
764 @cindex repeating a command | |
765 | |
38738 | 766 Many simple commands, such as those invoked with a single key or |
767 with @kbd{M-x @var{command-name} @key{RET}}, can be repeated by | |
768 invoking them with a numeric argument that serves as a repeat count | |
769 (@pxref{Arguments}). However, if the command you want to repeat | |
770 prompts for some input, or uses a numeric argument in another way, | |
771 repetition using a numeric argument might be problematical. | |
38541
2540b694650b
(Repeating): Mention the numeric argument as another form of repetition,
Eli Zaretskii <eliz@gnu.org>
parents:
38172
diff
changeset
|
772 |
25829 | 773 @kindex C-x z |
774 @findex repeat | |
775 The command @kbd{C-x z} (@code{repeat}) provides another way to repeat | |
776 an Emacs command many times. This command repeats the previous Emacs | |
777 command, whatever that was. Repeating a command uses the same arguments | |
778 that were used before; it does not read new arguments each time. | |
779 | |
780 To repeat the command more than once, type additional @kbd{z}'s: each | |
781 @kbd{z} repeats the command one more time. Repetition ends when you | |
782 type a character other than @kbd{z}, or press a mouse button. | |
783 | |
784 For example, suppose you type @kbd{C-u 2 0 C-d} to delete 20 | |
785 characters. You can repeat that command (including its argument) three | |
786 additional times, to delete a total of 80 characters, by typing @kbd{C-x | |
787 z z z}. The first @kbd{C-x z} repeats the command once, and each | |
788 subsequent @kbd{z} repeats it once again. | |
789 |