comparison etc/TUTORIAL @ 159:3bb7ccffb0c0 r20-3b6

Import from CVS: tag r20-3b6
author cvs
date Mon, 13 Aug 2007 09:41:43 +0200
parents 131b0175ea99
children 28f395d8dc7a
comparison
equal deleted inserted replaced
158:558dfa75ffb3 159:3bb7ccffb0c0
1 Copyright (c) 1985, 1996 Free Software Foundation, Inc. See end for conditions. 1 Copyright (c) 1985 Free Software Foundation, Inc; See end for conditions.
2
3 You are looking at the Emacs tutorial. 2 You are looking at the Emacs tutorial.
4 3
5 Emacs commands generally involve the CONTROL key (sometimes labelled 4 Emacs commands generally involve the CONTROL key (sometimes labeled
6 CTRL or CTL) or the META key. On some keyboards, the META key is 5 CTRL or CTL) or the META key (sometimes labeled EDIT or ALT). Rather than
7 labelled ALT or EDIT or something else (for example, on Sun keyboards, 6 write that in full each time, we'll use the following abbreviations:
8 the diamond key to the left of the spacebar is META). If you have no
9 META key, you can use ESC instead. Rather than write out META or
10 CONTROL each time we want you to prefix a character, we'll use the
11 following abbreviations:
12 7
13 C-<chr> means hold the CONTROL key while typing the character <chr> 8 C-<chr> means hold the CONTROL key while typing the character <chr>
14 Thus, C-f would be: hold the CONTROL key and type f. 9 Thus, C-f would be: hold the CONTROL key and type f.
15 M-<chr> means hold the META key down while typing <chr>. If there 10 M-<chr> means hold the META or EDIT or ALT key down while typing <chr>.
16 is no META key, type <ESC>, release it, then type the 11 If there is no META, EDIT or ALT key, instead press and release the
17 character <chr>. 12 ESC key and then type <chr>. We write <ESC> for the ESC key.
18 13
19 Important note: to end the Emacs session, type C-x C-c. (Two characters.) 14 Important note: to end the Emacs session, type C-x C-c. (Two characters.)
20 The characters ">>" at the left margin indicate directions for you to 15 The characters ">>" at the left margin indicate directions for you to
21 try using a command. For instance: 16 try using a command. For instance:
22 <<Blank lines inserted here by startup of help-with-tutorial>> 17 <<Blank lines inserted here by startup of help-with-tutorial>>
23 >> Now type C-v (View next screen) to move to the next screen. 18 >> Now type C-v (View next screen) to move to the next screen.
24 (go ahead, do it by depressing the control key and v together). 19 (go ahead, do it by holding down the control key while typing v).
25 From now on, you'll be expected to do this whenever you finish 20 From now on, you should do this again whenever you finish
26 reading the screen. 21 reading the screen.
27 22
28 Note that there is an overlap when going from screen to screen; this 23 Note that there is an overlap of two lines when you move from screen
29 provides some continuity when moving through the file. 24 to screen; this provides some continuity so you can continue reading
30 25 the text.
31 The first thing that you need to know is how to move around from 26
32 place to place in the file. You already know how to move forward a 27 The first thing that you need to know is how to move around from place
33 screen, with C-v. To move backwards a screen, type M-v (depress the 28 to place in the text. You already know how to move forward one screen,
34 META key and type v, or type <ESC>v if you don't have a META or EDIT 29 with C-v. To move backwards one screen, type M-v (hold down the META key
35 key). 30 and type v, or type <ESC>v if you do not have a META, EDIT, or ALT key).
36 31
37 >> Try typing M-v and then C-v to move back and forth a few times. 32 >> Try typing M-v and then C-v, a few times.
38 33
39 34
40 * SUMMARY 35 * SUMMARY
41 --------- 36 ---------
42 37
43 The following commands are useful for viewing screenfuls: 38 The following commands are useful for viewing screenfuls:
44 39
45 C-v Move forward one screenful 40 C-v Move forward one screenful
46 M-v Move backward one screenful 41 M-v Move backward one screenful
47 C-l Clear screen and redisplay everything 42 C-l Clear screen and redisplay all the text,
48 putting the text near the cursor at the center. 43 moving the text around the cursor
49 (That's control-L, not control-1. control-1 44 to the center of the screen.
50 has a completely different meaning, as 45 (That's control-L, not control-1.)
51 described below.) 46
52 47 >> Find the cursor, and note what text is near it.
53 >> Find the cursor and remember what text is near it. 48 Then type C-l.
54 Then type a C-l. 49 Find the cursor again and notice that the same text
55 Find the cursor again and see what text is near it now. 50 is near the cursor now.
56 51
57 52
58 * BASIC CURSOR CONTROL 53 * BASIC CURSOR CONTROL
59 ---------------------- 54 ----------------------
60 55
61 Getting from screenful to screenful is useful, but how do you 56 Moving from screenful to screenful is useful, but how do you
62 reposition yourself within a given screen to a specific place? 57 move to a specific place within the text on the screen?
63 There are several ways you can do this. One way (not the best, but 58
64 the most basic) is to use the commands previous, backward, forward 59 There are several ways you can do this. The most basic way is to use
65 and next. As you can imagine these commands (which are given to 60 the commands C-p, C-b, C-f, and C-n. Each of these commands moves the
66 Emacs as C-p, C-b, C-f, and C-n respectively) move the cursor from 61 cursor one row or column in a particular direction on the screen.
67 where it currently is to a new place in the given direction. Here, 62 Here is a table showing these four commands and shows the directions
68 in a more graphical form are the commands: 63 they move:
69 64
70 Previous line, C-p 65 Previous line, C-p
71 : 66 :
72 : 67 :
73 Backward, C-b .... Current cursor position .... Forward, C-f 68 Backward, C-b .... Current cursor position .... Forward, C-f
74 : 69 :
75 : 70 :
76 Next line, C-n 71 Next line, C-n
77 72
78 >> Move the cursor to the line in the middle of that diagram 73 >> Move the cursor to the line in the middle of that diagram
79 and type C-l to see the whole diagram centered in the screen. 74 using C-n or C-p. Then type C-l to see the whole diagram
80 75 centered in the screen.
81 You'll probably find it easy to think of these by letter. P for 76
82 previous, N for next, B for backward and F for forward. These are 77 You'll probably find it easy to think of these by letter: P for
83 the basic cursor positioning commands and you'll be using them ALL 78 previous, N for next, B for backward and F for forward. These are the
84 the time so it would be of great benefit if you learn them now. 79 basic cursor positioning commands, and you'll be using them ALL the
80 time, so it would be of great benefit if you learn them now.
85 81
86 >> Do a few C-n's to bring the cursor down to this line. 82 >> Do a few C-n's to bring the cursor down to this line.
87 83
88 >> Move into the line with C-f's and then up with C-p's. 84 >> Move into the line with C-f's and then up with C-p's.
89 See what C-p does when the cursor is in the middle of the line. 85 See what C-p does when the cursor is in the middle of the line.
90 86
91 Lines are separated by Newline characters. For most applications 87 Each of text line ends with a Newline character, which serves to
92 there should normally be a Newline character at the end of the text, 88 separate it from the following line. The last line in your file ought
93 as well, but it is up to you to make sure of this. A file can 89 to have a Newline at the end (but Emacs does not require it to have
94 validly exist without a Newline at the end. 90 one).
95 91
96 >> Try to C-b at the beginning of a line. Do a few more C-b's. 92 >> Try to C-b at the beginning of a line. It should move to
97 Then do C-f's back to the end of the line and beyond. 93 the end of the previous line. This is because it moves back
98 94 across the Newline character.
99 When you go off the top or bottom of the screen, the text beyond 95
100 the edge is shifted onto the screen so that your instructions can 96 C-f can move across a Newline just like C-b.
101 be carried out while keeping the cursor on the screen. 97
102 98 >> Do a few more C-b's, so you get a feel for where the cursor is.
103 >> Try to move the cursor off the bottom of the screen with C-n and 99 Then do C-f's to return to the end of the line.
100 Then do one more C-f to move to the following line.
101
102 When you move past the top or bottom of the screen, the text beyond
103 the edge shifts onto the screen. This is called "scrolling". It
104 enables Emacs to move the cursor to the specified place in the text
105 without moving it off the screen.
106
107 >> Try to move the cursor off the bottom of the screen with C-n, and
104 see what happens. 108 see what happens.
105 109
106 If moving by characters is too slow, you can move by words. M-f 110 If moving by characters is too slow, you can move by words. M-f
107 (Meta-f) moves forward a word and M-b moves back a word. 111 (Meta-f) moves forward a word and M-b moves back a word.
108 112
109 >> Type a few M-f's and M-b's. Intersperse them with C-f's and C-b's. 113 >> Type a few M-f's and M-b's.
114
115 When you are in the middle of a word, M-f moves to the end of the word.
116 When you are in whitespace between words, M-f moves to the end of the
117 following word. M-b works likewise in the opposite direction.
118
119 >> Type M-f and M-b a few times, interspersed with C-f's and C-b's
120 so that you can observe the action of M-f and M-b from various
121 places inside and between words.
110 122
111 Notice the parallel between C-f and C-b on the one hand, and M-f and 123 Notice the parallel between C-f and C-b on the one hand, and M-f and
112 M-b on the other hand. Very often Meta characters are used for 124 M-b on the other hand. Very often Meta characters are used for
113 operations related to English text whereas Control characters operate 125 operations related to the units defined by language (words, sentences,
114 on the basic textual units that are independent of what you are 126 paragraphs), while Control characters operate on basic units that are
115 editing (characters, lines, etc). There is a similar parallel between 127 independent of what you are editing (characters, lines, etc).
116 lines and sentences: C-a and C-e move to the beginning or end of a 128
117 line, and M-a and M-e move to the beginning or end of a sentence. 129 This parallel applies between lines and sentences: C-a and C-e move to
130 the beginning or end of a line, and M-a and M-e move to the beginning
131 or end of a sentence.
118 132
119 >> Try a couple of C-a's, and then a couple of C-e's. 133 >> Try a couple of C-a's, and then a couple of C-e's.
120 Try a couple of M-a's, and then a couple of M-e's. 134 Try a couple of M-a's, and then a couple of M-e's.
121 135
122 See how repeated C-a's do nothing, but repeated M-a's keep moving 136 See how repeated C-a's do nothing, but repeated M-a's keep moving one
123 farther. Do you think that this is right? 137 more sentence. Although these are not quite analogous, each one seems
124 138 natural.
125 Two other simple cursor motion commands are M-< (Meta Less-than),
126 which moves to the beginning of the file, and M-> (Meta Greater-than),
127 which moves to the end of the file. You probably don't need to try
128 them, since finding this spot again will be boring. On most terminals
129 the "<" is above the comma and you must use the shift key to type it.
130 On these terminals you must use the shift key to type M-< also;
131 without the shift key, you would be typing M-comma.
132 139
133 The location of the cursor in the text is also called "point". To 140 The location of the cursor in the text is also called "point". To
134 paraphrase, the cursor shows on the screen where point is located in 141 paraphrase, the cursor shows on the screen where point is located in
135 the text. 142 the text.
136 143
137 Here is a summary of simple moving operations including the word and 144 Here is a summary of simple cursor-moving operations, including the
138 sentence moving commands: 145 word and sentence moving commands:
139 146
140 C-f Move forward a character 147 C-f Move forward a character
141 C-b Move backward a character 148 C-b Move backward a character
142 149
143 M-f Move forward a word 150 M-f Move forward a word
150 C-e Move to end of line 157 C-e Move to end of line
151 158
152 M-a Move back to beginning of sentence 159 M-a Move back to beginning of sentence
153 M-e Move forward to end of sentence 160 M-e Move forward to end of sentence
154 161
155 M-< Go to beginning of file
156 M-> Go to end of file
157
158 >> Try all of these commands now a few times for practice. 162 >> Try all of these commands now a few times for practice.
159 Since the last two will take you away from this screen, 163 These are the most often used commands.
160 you can come back here with M-v's and C-v's. These are 164
161 the most often used commands. 165 Two other important cursor motion commands are M-< (Meta Less-than),
162 166 which moves to the beginning of the whole text, and M-> (Meta
163 Like all other commands in Emacs, these commands can be given 167 Greater-than), which moves to the end of the whole text.
164 arguments which cause them to be executed repeatedly. The way you 168
165 give a command a repeat count is by typing C-u and then the digits 169 On most terminals, the "<" is above the comma, so you must use the
166 before you type the command. If you have a META or EDIT key, you can 170 shift key to type it. On these terminals you must use the shift key
167 omit the C-u if you hold down the META or EDIT key while you type the 171 to type M-< also; without the shift key, you would be typing M-comma.
168 digits. This is easier, but we recommend the C-u method because it 172
169 works on any terminal. 173 >> Try M-< now, to move to the beginning of the tutorial.
174 Then use C-v repeatedly to move back here.
175
176 >> Try M-> now, to move to the end of the tutorial.
177 Then use M-v repeatedly to move back here.
178
179 You can also move the cursor with the arrow keys, if your terminal has
180 arrow keys. We recommend learning C-b, C-f, C-n and C-p for three
181 reasons. First, they work on all kinds of terminals. Second, once
182 you gain practice at using Emacs, you will find that typing these CTRL
183 characters is faster than typing the arrow keys (because you do not
184 have to move your hands away from touch-typing position). Third, once
185 you form the habit of using these CTRL character commands, you can
186 easily learn to use other advanced cursor motion commands as well.
187
188 Most Emacs commands accept a numeric argument; for most commands, this
189 serves as a repeat-count. The way you give a command a repeat count
190 is by typing C-u and then the digits before you type the command. If
191 you have a META (or EDIT or ALT) key, there is another alternative way
192 to enter a numeric argument: type the digits while holding down the
193 META key. We recommend learning the C-u method because it works on
194 any terminal.
170 195
171 For instance, C-u 8 C-f moves forward eight characters. 196 For instance, C-u 8 C-f moves forward eight characters.
172 197
173 >> Try giving a suitable argument to C-n or C-p to come as close 198 >> Try using C-n or C-p with a numeric argument, to move the cursor
174 as you can to this line in one jump. 199 to a line near this one with just one command.
175 200
176 The only apparent exception to this is the screen moving commands, 201 Most commands use the numeric argument as a repeat count. Certain
177 C-v and M-v. When given an argument, they scroll the screen up or 202 exceptional commands use it differently. C-v and M-v are among the
178 down by that many lines, rather than screenfuls. This proves to be 203 exceptions. When given an argument, they scroll the screen up or down
179 much more useful. 204 by that many lines, rather than by a screenfuls. For example, C-u 4
205 C-v scrolls the screen by 4 lines.
180 206
181 >> Try typing C-u 8 C-v now. 207 >> Try typing C-u 8 C-v now.
182 208
183 Did it scroll the screen up by 8 lines? If you would like to 209 This should have scrolled the screen up by 8 lines. If you would like
184 scroll it down you can give an argument to M-v. 210 to scroll it down again, you can give an argument to M-v.
185 211
186 If you are using X Windows, there is probably a rectangular area 212 If you are using X Windows, there should be a tall rectangular area
187 called a scroll bar at the right hand side of the Emacs window. You 213 called a scroll bar at the left hand side of the Emacs window. You
188 can scroll the text by manipulating the scroll bar with the mouse. 214 can scroll the text by clicking the mouse in the scroll bar.
189 215
190 >> Try pressing the middle button at the top of the highlighted area 216 >> Try pressing the middle button at the top of the highlighted area
191 within the scroll bar, then moving the mouse while holding that button 217 within the scroll bar. This should scroll the text to a position
192 down. 218 determined by how high or low you click.
193 219
194 >> Move the mouse to a point in the scroll bar about three lines from 220 >> Try moving the mouse up and down, while holding the middle button
195 the top, and click the left button a couple of times. 221 pressed down. You'll see that the text scrolls up and down as
196 222 you move the mouse.
197
198 * CURSOR CONTROL WITH AN X TERMINAL
199 -----------------------------------
200
201 If you have an X terminal, you will probably find it easier to use
202 the keys on the keypad to control the cursor. The left, right, up,
203 and down arrow keys move in the expected direction; they function
204 exactly like C-b, C-f, C-p, and C-n, but are easier to type and to
205 remember. You can also use C-left and C-right to move by words, and
206 C-up and C-down to move by blocks (e.g. paragraphs, if you're
207 editing text). If you have keys labelled HOME (or BEGIN) and END,
208 they will take you to the beginning and end of a line, respectively,
209 and C-home and C-end will move to the beginning and end of the file.
210 If your keyboard has PgUp and PgDn keys, you can use them to move up
211 and down a screenful at a time, like M-v and C-v.
212
213 All of these commands can take numeric arguments, as described above.
214 You can use a shortcut to enter these arguments: just hold down the
215 CONTROL or META key and type the number. For example, to move 12
216 words to the right, type C-1 C-2 C-right. Note that it is very easy
217 to type this because you do not have to release the CONTROL key
218 between keystrokes.
219 223
220 224
221 * WHEN EMACS IS HUNG 225 * WHEN EMACS IS HUNG
222 -------------------- 226 --------------------
223 227
224 If Emacs gets into an infinite (or simply very long) computation which 228 If Emacs stops responding to your commands, you can stop it safely by
225 you don't want to finish, you can stop it safely by typing C-g. 229 typing C-g. You can use C-g to stop a command which is taking too
230 long to execute.
231
226 You can also use C-g to discard a numeric argument or the beginning of 232 You can also use C-g to discard a numeric argument or the beginning of
227 a command that you don't want to finish. 233 a command that you do not want to finish.
228 234
229 >> Type C-u 100 to make a numeric arg of 100, then type C-g. 235 >> Type C-u 100 to make a numeric arg of 100, then type C-g.
230 Now type C-f. How many characters does it move? 236 Now type C-f. It should move just one character,
231 If you have typed an <ESC> by mistake, you can get rid of it 237 because you canceled the argument with C-g.
232 with a C-g. 238
233 239 If you have typed an <ESC> by mistake, you can get rid of it
234 If you type <ESC> : then you get a new window appearing on the screen, 240 with a C-g.
235 telling you that M-: is a "disabled command" and asking whether you 241
236 really want to execute it. The command M-: is marked as disabled 242
237 because we expect it would confuse beginners and you probably don't 243 * DISABLED COMMANDS
238 want to use it until you know more about Emacs. If you really want to 244 -------------------
239 try the M-: command, you could type a Space in answer to the question, 245
240 and M-: would go ahead. Normally, if you do not want to execute M-:, 246 Some Emacs commands are "disabled" so that beginning users cannot use
241 you would type "n" to answer the question. 247 them by accident.
242 248
243 >> Type <ESC> :, then type n. 249 If you type one of the disabled commands, Emacs displays a message
250 saying what the command was, and asking you whether you want to go
251 ahead and execute the command.
252
253 If you really want to try the command, type Space in answer to the
254 question. Normally, if you do not want to execute the disabled
255 command, answer the question with "n".
256
257 >> Type <ESC> : (which is a disabled command),
258 then type n to answer the question.
244 259
245 260
246 * WINDOWS 261 * WINDOWS
247 --------- 262 ---------
248 263
249 Emacs can have several windows, each displaying its own text. 264 Emacs can have several windows, each displaying its own text. We will
250 Note that "window" as used by Emacs does not refer to separate 265 explain later on how to use multiple windows. Right now we want to
251 overlapping windows in the window system, but to separate panes 266 explain how to get rid of extra windows and go back to basic
252 within a single X window. (Emacs can also have multiple X 267 one-window editing. It is simple:
253 windows, or "frames" in Emacs terminology. This is described
254 later.)
255
256 At this stage it is better not to go into the techniques of
257 using multiple windows. But you do need to know how to get
258 rid of extra windows that may appear to display help or
259 output from certain commands. It is simple:
260 268
261 C-x 1 One window (i.e., kill all other windows). 269 C-x 1 One window (i.e., kill all other windows).
262 270
263 That is Control-x followed by the digit 1. 271 That is Control-x followed by the digit 1. C-x 1 expands the window
264 C-x 1 makes the window which the cursor is in become 272 which contains the cursor, to occupy the full screen. It deletes all
265 the full screen, by getting rid of any other windows. 273 other windows.
266 274
267 >> Move the cursor to this line and type C-u 0 C-l. 275 >> Move the cursor to this line and type C-u 0 C-l.
268
269 (Remember that C-l redraws the screen. If you give a
270 numeric argument to this command, it means "redraw the
271 screen and put the current line that many lines from the
272 top of the screen." So C-u 0 C-l means "redraw the
273 screen, putting the current line at the top.")
274
275 >> Type Control-h k Control-f. 276 >> Type Control-h k Control-f.
276 See how this window shrinks, while a new one appears 277 See how this window shrinks, while a new one appears
277 to display documentation on the Control-f command. 278 to display documentation on the Control-f command.
278 279
279 >> Type C-x 1 and see the documentation listing window disappear. 280 >> Type C-x 1 and see the documentation listing window disappear.
280 281
281 282
282 * INSERTING AND DELETING 283 * INSERTING AND DELETING
283 ------------------------ 284 ------------------------
284 285
285 If you want to insert text, just type it. Characters which you can 286 If you want to insert text, just type the text. Characters which you
286 see, such as A, 7, *, etc. are taken by Emacs as text and inserted 287 can see, such as A, 7, *, etc. are taken by Emacs as text and inserted
287 immediately. Type <Return> (the carriage-return key) to insert a 288 immediately. Type <Return> (the carriage-return key) to insert a
288 Newline character. 289 Newline character.
289 290
290 You can delete the last character you typed by typing <Delete>. 291 You can delete the last character you typed by typing <Delete>.
291 <Delete> is a key on the keyboard, which may be labeled "Del". In 292 <Delete> is a key on the keyboard, which may be labeled "Del". In
292 some cases, the "Backspace" key serves as <Delete>, but not always! 293 some cases, the "Backspace" key serves as <Delete>, but not always!
293 294
294 More generally, <Delete> deletes the character immediately before the 295 More generally, <Delete> deletes the character immediately before the
295 current cursor position. 296 current cursor position.
296 297
297 >> Do this now, type a few characters and then delete them 298 >> Do this now--type a few characters, then delete them
298 by typing <Delete> a few times. Don't worry about this file 299 by typing <Delete> a few times. Don't worry about this file
299 being changed; you won't affect the master tutorial. This is just 300 being changed; you will not alter the master tutorial. This is
300 a copy of it. 301 your personal copy of it.
301 302
302 >> Now start typing text until you reach the right margin, and keep 303 When a line of text gets too big for one line on the screen, the line
303 typing. When a line of text gets too big for one line on the 304 of text is "continued" onto a second screen line. A backslash ("\")
304 screen, the line of text is "continued" onto a second screen line. 305 at the right margin indicates a line which has been continued.
305 The backslash at the right margin indicates a line which has 306
306 been continued. 307 >> Insert text until you reach the right margin, and keep on inserting.
308 You'll see a continuation line appear.
309
307 >> Use <Delete>s to delete the text until the line fits on one screen 310 >> Use <Delete>s to delete the text until the line fits on one screen
308 line again. The continuation line goes away. 311 line again. The continuation line goes away.
309 312
313 You can delete a Newline character just like any other character.
314 Deleting the Newline character between two lines merges them into
315 one line. If the resulting combined line is too long to fit in the
316 screen width, it will be displayed with a continuation line.
317
310 >> Move the cursor to the beginning of a line and type <Delete>. This 318 >> Move the cursor to the beginning of a line and type <Delete>. This
311 deletes the newline before the line and merges the line onto 319 merges that line with the previous line.
312 the previous line. The resulting line may be too long to fit, in 320
313 which case it has a continuation line.
314 >> Type <Return> to reinsert the Newline you deleted. 321 >> Type <Return> to reinsert the Newline you deleted.
315 322
316 Remember that most Emacs commands can be given a repeat count; 323 Remember that most Emacs commands can be given a repeat count;
317 this includes characters which insert themselves. 324 this includes text characters. Repeating a text character inserts
318 325 it several times.
319 >> Try that now -- type C-u 8 * and see what happens. 326
327 >> Try that now -- type C-u 8 * to insert ********.
320 328
321 You've now learned the most basic way of typing something in 329 You've now learned the most basic way of typing something in
322 Emacs and correcting errors. You can delete by words or lines 330 Emacs and correcting errors. You can delete by words or lines
323 as well. Here is a summary of the delete operations: 331 as well. Here is a summary of the delete operations:
324 332
330 338
331 C-k kill from the cursor position to end of line 339 C-k kill from the cursor position to end of line
332 M-k kill to the end of the current sentence 340 M-k kill to the end of the current sentence
333 341
334 Notice that <Delete> and C-d vs M-<Delete> and M-d extend the parallel 342 Notice that <Delete> and C-d vs M-<Delete> and M-d extend the parallel
335 started by C-f and M-f (well, <Delete> isn't really a control 343 started by C-f and M-f (well, <Delete> is not really a control
336 character, but let's not worry about that). C-k and M-k are like C-e 344 character, but let's not worry about that). C-k and M-k are like C-e
337 and M-e, sort of, in that lines are opposite sentences. 345 and M-e, sort of, in that lines are opposite sentences.
338 346
339 Now suppose you kill something, and then you decide that you want to 347 When you delete more than one character at a time, Emacs saves the
340 get it back? Well, whenever you kill something bigger than a 348 deleted text so that you can bring it back. Bringing back killed text
341 character, Emacs saves it for you. To yank it back, use C-y. You 349 is called "yanking". You can yank the killed text either at the same
342 can kill text in one place, move elsewhere, and then do C-y; this is 350 place where it was killed, or at some other place in the text. You
343 a good way to move text around. Note that the difference 351 can yank the text several times in order to make multiple copies of
344 between "Killing" and "Deleting" something is that "Killed" things 352 it. The command to yank is C-y.
345 can be yanked back, and "Deleted" things cannot. Generally, the 353
346 commands that can destroy a lot of text save it, while the ones that 354 Note that the difference between "Killing" and "Deleting" something is
347 attack only one character, or nothing but blank lines and spaces, do 355 that "Killed" things can be yanked back, and "Deleted" things cannot.
348 not save. 356 Generally, the commands that can remove a lot of text save the text,
349 357 while the commands that delete just one character, or just blank lines
350 For instance, type C-n a couple times to position the cursor 358 and spaces, do not save the deleted text.
351 at some line on this screen. 359
352 360 >> Move the cursor to the beginning of a line which is not empty.
353 >> Do this now, move the cursor and kill that line with C-k. 361 Then type C-k to kill the text on that line.
362 >> Type C-k a second time. You'll see that it kills the Newline
363 which follows that line.
354 364
355 Note that a single C-k kills the contents of the line, and a second 365 Note that a single C-k kills the contents of the line, and a second
356 C-k kills the line itself, and make all the other lines move up. If 366 C-k kills the line itself, and make all the other lines move up. C-k
357 you give C-k a repeat count, it kills that many lines AND their 367 treats a numeric argument specially: it kills that many lines AND
358 contents. 368 their contents. This is not mere repetition. C-u 2 C-k kills two
359 369 lines and their newlines; typing C-k twice would not do that.
360 The text that has just disappeared is saved so that you can 370
361 retrieve it. To retrieve the last killed text and put it where 371 To retrieve the last killed text and put it where the cursor currently
362 the cursor currently is, type C-y. 372 is, type C-y.
363 373
364 >> Try it; type C-y to yank the text back. 374 >> Try it; type C-y to yank the text back.
365 375
366 Think of C-y as if you were yanking something back that someone 376 Think of C-y as if you were yanking something back that someone took
367 took away from you. Notice that if you do several C-k's in a row 377 away from you. Notice that if you do several C-k's in a row, all of
368 the text that is killed is all saved together so that one C-y will 378 the killed text is saved together, so that one C-y will yank all of
369 yank all of the lines. 379 the lines.
370 380
371 >> Do this now, type C-k several times. 381 >> Do this now, type C-k several times.
372 382
373 Now to retrieve that killed text: 383 Now to retrieve that killed text:
374 384
377 387
378 What do you do if you have some text you want to yank back, and then 388 What do you do if you have some text you want to yank back, and then
379 you kill something else? C-y would yank the more recent kill. But 389 you kill something else? C-y would yank the more recent kill. But
380 the previous text is not lost. You can get back to it using the M-y 390 the previous text is not lost. You can get back to it using the M-y
381 command. After you have done C-y to get the most recent kill, typing 391 command. After you have done C-y to get the most recent kill, typing
382 M-Y replaces that yanked text with the previous kill. Typing M-y 392 M-y replaces that yanked text with the previous kill. Typing M-y
383 again and again brings in earlier and earlier kills. When you 393 again and again brings in earlier and earlier kills. When you have
384 have reached the text you are looking for, you can just go away and 394 reached the text you are looking for, you do not have to do anything to
385 leave it there. If you M-y enough times, you come back to the 395 keep it. Just go on with your editing, leaving the yanked text where
386 starting point (the most recent kill). 396 it is.
397
398 If you M-y enough times, you come back to the starting point (the most
399 recent kill).
387 400
388 >> Kill a line, move around, kill another line. 401 >> Kill a line, move around, kill another line.
389 Then do C-y to get back the second killed line. 402 Then do C-y to get back the second killed line.
390 Then do M-y and it will be replaced by the first killed line. 403 Then do M-y and it will be replaced by the first killed line.
391 Do more M-y's and see what you get. Keep doing them until 404 Do more M-y's and see what you get. Keep doing them until
395 408
396 409
397 * UNDO 410 * UNDO
398 ------ 411 ------
399 412
400 Any time you make a change to the text and wish you had not done so, 413 If you make a change to the text, and then decide that it was a
401 you can undo the change (return the text to its previous state) 414 mistake, you can undo the change with the undo command, C-x u.
402 with the undo command, C-x u. Normally, C-x u undoes one command's 415
403 worth of changes; if you repeat the C-x u several times in a row, 416 Normally, C-x u undoes the changes made by one command; if you repeat
404 each time undoes one more command. There are two exceptions: 417 the C-x u several times in a row, each repetition undoes one
405 commands that made no change (just moved the cursor) do not count, 418 additional command.
406 and self-inserting characters are often lumped together in groups 419
407 of up to 20. This is to reduce the number of C-x u's you have to type. 420 But there are two exceptions: commands that do not change the text do
421 not count (this includes cursor motion commands and scrolling
422 command), and self-inserting characters are usually handled in groups
423 of up to 20. (This is to reduce the number of C-x u's you have to
424 type to undo insertion of text.)
408 425
409 >> Kill this line with C-k, then type C-x u and it should reappear. 426 >> Kill this line with C-k, then type C-x u and it should reappear.
410 427
411 C-_ is another command for undoing; it is just the same as C-x u 428 C-_ is an alternative undo command; it works just the same as C-x u,
412 but easier to type several times in a row. The problem with C-_ is 429 but it is easier to type several times in a row. The disadvantage of
413 that on some keyboards it is not obvious how to type it. That is 430 C-_ is that on some keyboards it is not obvious how to type it. That
414 why C-x u is provided as well. On some DEC terminals, you can type 431 is why we provide C-x u as well. On some terminals, you can type C-_
415 C-_ by typing / while holding down CTRL. Illogical, but what can 432 by typing / while holding down CTRL.
416 you expect from DEC? 433
417 434 A numeric argument to C-_ or C-x u acts as a repeat count.
418 Giving a numeric argument to C-_ or C-x u is equivalent to repeating
419 it as many times as the argument says.
420 435
421 436
422 * FILES 437 * FILES
423 ------- 438 -------
424 439
425 In order to make the text you edit permanent, you must put it in a 440 In order to make the text you edit permanent, you must put it in a
426 file. Otherwise, it will go away when your invocation of Emacs goes 441 file. Otherwise, it will go away when your invocation of Emacs goes
427 away. You put your editing in a file by "finding" the file. What 442 away. You put your editing in a file by "finding" the file. (This is
428 finding means is that you see the contents of the file in your Emacs; 443 also called "visiting" the file.)
429 and, loosely speaking, what you are editing is the file itself. 444
430 However, the changes still don't become permanent until you "save" the 445 Finding a file means that you see the contents of the file within
431 file. This is so you can have control to avoid leaving a half-changed 446 Emacs. In many ways, it is as if you were editing the file itself.
432 file around when you don't want to. Even then, Emacs leaves the 447 However, the changes you make using Emacs do not become permanent
433 original file under a changed name in case your changes turn out 448 until you "save" the file. This is so you can avoid leaving a
434 to be a mistake. 449 half-changed file on the system when you do not want to. Even when
450 you save, Emacs leaves the original file under a changed name in case
451 you later decide that your changes were a mistake.
435 452
436 If you look near the bottom of the screen you will see a line that 453 If you look near the bottom of the screen you will see a line that
437 begins and ends with dashes, and contains the string "Emacs: TUTORIAL". 454 begins and ends with dashes, and contains the string "Emacs:
438 Your copy of the Emacs tutorial is called "TUTORIAL". Whatever 455 TUTORIAL". This part of the screen always shows the name of the file
439 file you find, that file's name will appear in that precise 456 that you are visiting. Right now, you are visiting a file called
457 "TUTORIAL" which is your personal scratch copy of the Emacs tutorial.
458 Whatever file you find, that file's name will appear in that precise
440 spot. 459 spot.
441 460
442 The commands for finding and saving files are unlike the other 461 The commands for finding and saving files are unlike the other
443 commands you have learned in that they consist of two characters. 462 commands you have learned in that they consist of two characters.
444 They both start with the character Control-x. There is a whole series 463 They both start with the character Control-x. There is a whole series
445 of commands that start with Control-x; many of them have to do with 464 of commands that start with Control-x; many of them have to do with
446 files, buffers, and related things, and all of them consist of 465 files, buffers, and related things. These commands are two, three or
447 Control-x followed by some other character. 466 four characters long.
448 467
449 Another thing about the command for finding a file is that you have 468 Another thing about the command for finding a file is that you have
450 to say what file name you want. We say the command "reads an argument 469 to say what file name you want. We say the command "reads an argument
451 from the terminal" (in this case, the argument is the name of the 470 from the terminal" (in this case, the argument is the name of the
452 file). After you type the command 471 file). After you type the command
453 472
454 C-x C-f Find a file 473 C-x C-f Find a file
455 474
456 Emacs asks you to type the file name. It echoes on the bottom 475 Emacs asks you to type the file name. The file name you type appears
457 line of the screen. You are using the minibuffer now! this is 476 on the bottom line of the screen. The bottom line is called the
458 what the minibuffer is for. When you type <Return> to end the 477 minibuffer when it is used for this sort of input. You can use
459 file name, the minibuffer is no longer needed, so it disappears. 478 ordinary Emacs editing commands to edit the file name.
479
480 While you are entering the file name (or any minibuffer input),
481 you can cancel the command with C-g.
460 482
461 >> Type C-x C-f, then type C-g. This cancels the minibuffer, 483 >> Type C-x C-f, then type C-g. This cancels the minibuffer,
462 and also cancels the C-x C-f command that was using the 484 and also cancels the C-x C-f command that was using the
463 minibuffer. So you do not find any file. 485 minibuffer. So you do not find any file.
464 486
465 In a little while the file contents appear on the screen. You can 487 When you have finished entering the file name, type <Return> to
466 edit the contents. When you wish to make the changes permanent, 488 terminate it. Then C-x C-f command goes to work, and finds the file
467 issue the command 489 you chose. The minibuffer disappears when the C-x C-f command is
490 finished.
491
492 In a little while the file contents appear on the screen, and you can
493 edit the contents. When you wish to make your changes permanent,
494 type the command
468 495
469 C-x C-s Save the file 496 C-x C-s Save the file
470 497
471 The contents of Emacs are written into the file. The first time you 498 This copies the text within Emacs into the file. The first time you
472 do this, the original file is renamed to a new name so that it 499 do this, Emacs renames the original file to a new name so that it is
473 is not lost. The new name is made by appending "~" to the end 500 not lost. The new name is made by adding "~" to the end of the
474 of the original file's name. 501 original file's name.
475 502
476 When saving is finished, Emacs prints the name of the file written. 503 When saving is finished, Emacs prints the name of the file written.
477 You should save fairly often, so that you will not lose very much 504 You should save fairly often, so that you will not lose very much
478 work if the system should crash. 505 work if the system should crash.
479 506
480 >> Type C-x C-s, saving your copy of the tutorial. 507 >> Type C-x C-s, saving your copy of the tutorial.
481 This should print "Wrote .../TUTORIAL" at the bottom of the screen. 508 This should print "Wrote ...TUTORIAL" at the bottom of the screen.
482 On VMS it will print "Wrote ...[...]TUTORIAL."
483 509
484 NOTE: On some systems, typing C-x C-s will freeze the screen and you 510 NOTE: On some systems, typing C-x C-s will freeze the screen and you
485 will see no further output from Emacs. This indicates that an 511 will see no further output from Emacs. This indicates that an
486 operating system "feature" called "flow control" is intercepting the 512 operating system "feature" called "flow control" is intercepting the
487 C-s and not letting it get through to Emacs. To unfreeze the screen, 513 C-s and not letting it get through to Emacs. To unfreeze the screen,
488 type C-q. Then see the section "Spontaneous Entry to Incremental 514 type C-q. Then see the section "Spontaneous Entry to Incremental
489 Search" in the Emacs manual for advice on dealing with this "feature". 515 Search" in the Emacs manual for advice on dealing with this "feature".
490 516
491 To make a new file, just find it "as if" it already existed. Then 517 You can find an existing file, to view it or edit it. You can also
492 start typing in the text. When you ask to "save" the file, Emacs 518 find a file which does not already exist. This is the way to create a
493 will really create the file with the text that you have inserted. 519 file with Emacs: find the file, which will start out empty, and then
494 From then on, you can consider yourself to be editing an already 520 begin inserting the text for the file. When you ask to "save" the
495 existing file. 521 file, Emacs will really create the file with the text that you have
522 inserted. From then on, you can consider yourself to be editing an
523 already existing file.
496 524
497 525
498 * BUFFERS 526 * BUFFERS
499 --------- 527 ---------
500 528
501 If you find a second file with C-x C-f, the first file remains 529 If you find a second file with C-x C-f, the first file remains
502 inside Emacs. You can switch back to it by finding it again with 530 inside Emacs. You can switch back to it by finding it again with
503 C-x C-f. This way you can get quite a number of files inside Emacs. 531 C-x C-f. This way you can get quite a number of files inside Emacs.
504 532
505 The object inside Emacs which holds the text read from one file 533 >> Create a file named "foo" by typing C-x C-f foo <Return>.
506 is called a "buffer." Finding a file makes a new buffer inside Emacs. 534 Then insert some text, edit it, and save "foo" by typing C-x C-s.
507 To see a list of the buffers that exist in Emacs, type 535 Finally, type C-x C-f TUTORIAL <Return>
536 to come back to the tutorial.
537
538 Emacs stores each file's text inside an object called a "buffer."
539 Finding a file makes a new buffer inside Emacs. To see a list of the
540 buffers that current exist in your Emacs job, type
508 541
509 C-x C-b List buffers 542 C-x C-b List buffers
510 543
511 >> Try C-x C-b now. 544 >> Try C-x C-b now.
512 545
513 See how each buffer has a name, and it may also have a file name 546 See how each buffer has a name, and it may also have a file name
514 for the file whose contents it holds. Some buffers do not correspond 547 for the file whose contents it holds. Some buffers do not correspond
515 to files. For example, the buffer named "*Buffer List*" does 548 to files. For example, the buffer named "*Buffer List*" does
516 not have any file. It is the buffer which contains the buffer 549 not have any file. It is the buffer which contains the buffer
517 list that was made by C-x C-b. ANY text you see in an Emacs window 550 list that was made by C-x C-b. ANY text you see in an Emacs window
518 has to be in some buffer. 551 is always part of some buffer.
519 552
520 >> Type C-x 1 to get rid of the buffer list. 553 >> Type C-x 1 to get rid of the buffer list.
521 554
522 If you make changes to the text of one file, then find another file, 555 If you make changes to the text of one file, then find another file,
523 this does not save the first file. Its changes remain inside Emacs, 556 this does not save the first file. Its changes remain inside Emacs,
527 file's buffer. It would be a nuisance to have to switch back to 560 file's buffer. It would be a nuisance to have to switch back to
528 it with C-x C-f in order to save it with C-x C-s. So we have 561 it with C-x C-f in order to save it with C-x C-s. So we have
529 562
530 C-x s Save some buffers 563 C-x s Save some buffers
531 564
532 C-x s goes through the list of all the buffers you have 565 C-x s asks you about each buffer which contains changes that you have
533 and finds the ones that contain files you have changed. 566 not saved. It asks you, for each such buffer, whether to save the
534 For each such buffer, C-x s asks you whether to save it. 567 buffer.
535 568
536 569 >> Insert a line of text, then type C-x s.
537 * USING THE MENU 570 It should ask you whether to save the buffer named TUTORIAL.
538 ---------------- 571 Answer yes to the question by typing "y".
539
540 If you are on an X terminal, you will notice a menubar at the
541 top of the Emacs screen. You can use this menubar to access all
542 the most common Emacs commands, such as "find file". You will
543 find this easier at first, because you don't need to remember
544 the keystrokes necessary to access any particular command. Once
545 you are comfortable with Emacs, it will be easy to begin using
546 the keyboard commands because each menu item with a
547 corresponding keyboard command has the command listed next to
548 it.
549
550 Note that there are many items in the menubar that have no exact
551 keyboard equivalents. For example, the Buffers menu lists all
552 of the available buffers in most-recently used order. You can
553 switch to any buffer by simply findings its name in the Buffers
554 menu and selecting it.
555
556
557 * USING THE MOUSE
558 -----------------
559
560 When running under X, Emacs is fully integrated with the mouse.
561 You can position the text cursor by clicking the left button at
562 the desired location, and you can select text by dragging the
563 left mouse button across the text you want to select. (Or
564 alternatively, click the left mouse button at one end of the
565 text, then move to the other end and use Shift-click to select
566 the text.)
567
568 To kill some selected text, you can use C-w or choose the Cut
569 item from the Edit menu. Note that these are *not* equivalent:
570 C-w only saves the text internally within Emacs (similar to C-k
571 as described above), whereas Cut does this and also puts the
572 text into the X clipboard, where it can be accessed by other
573 applications.
574
575 To retrieve text from the X clipboard, use the Paste item from
576 the Edit menu.
577
578 The middle mouse button is commonly used to choose items that
579 are visible on the screen. For example, if you enter Info (the
580 on-line Emacs documentation) using C-h i or the Help menu, you
581 can follow a highlighted link by clicking the middle mouse
582 button on it. Similarly, if you are typing a file name in
583 (e.g. when prompted by "Find File") and you hit TAB to show the
584 possible completions, you can click the middle mouse button on
585 one of the completions to select it.
586
587 The right mouse button brings up a popup menu. The contents of
588 this menu vary depending on what mode you're in, and usually
589 contain a few commonly used commands, so they're easier to
590 access.
591
592 >> Press the right mouse button now.
593
594 You will have to hold the button down in order to keep the
595 menu up.
596
597 572
598 * EXTENDING THE COMMAND SET 573 * EXTENDING THE COMMAND SET
599 --------------------------- 574 ---------------------------
600 575
601 There are many, many more Emacs commands than could possibly be put 576 There are many, many more Emacs commands than could possibly be put
604 579
605 C-x Character eXtend. Followed by one character. 580 C-x Character eXtend. Followed by one character.
606 M-x Named command eXtend. Followed by a long name. 581 M-x Named command eXtend. Followed by a long name.
607 582
608 These are commands that are generally useful but used less than the 583 These are commands that are generally useful but used less than the
609 commands you have already learned about. You have already seen two 584 commands you have already learned about. You have already seen two of
610 of them: the file commands C-x C-f to Find and C-x C-s to Save. 585 them: the file commands C-x C-f to Find and C-x C-s to Save. Another
611 Another example is the command to tell Emacs that you'd like to stop 586 example is the command to end the Emacs session--this is the command
612 editing and get rid of Emacs. The command to do this is C-x C-c. 587 C-x C-c. (Do not worry about losing changes you have made; C-x C-c
613 (Don't worry; it offers to save each changed file before it kills the 588 offers to save each changed file before it kills the Emacs.)
614 Emacs.)
615 589
616 C-z is the command to exit Emacs *temporarily*--so that you can go 590 C-z is the command to exit Emacs *temporarily*--so that you can go
617 back to the same Emacs session afterward. 591 back to the same Emacs session afterward.
618 592
619 On systems which allow it, C-z exits from Emacs to the shell but does 593 On systems which allow it, C-z "suspends" Emacs; that is, it returns
620 not destroy the Emacs; if you use the C shell, you can resume Emacs 594 to the shell but does not destroy the Emacs. In the most common
621 with the `fg' command (or, more generally, with `%emacs', which works 595 shells, you can resume Emacs with the `fg' command or with `%emacs'.
622 even if your most recent job was some other). On systems which don't 596
623 implement suspending, C-z creates a subshell running under Emacs to 597 On systems which do not implement suspending, C-z creates a subshell
624 give you the chance to run other programs and return to Emacs 598 running under Emacs to give you the chance to run other programs and
625 afterward; it does not truly "exit" from Emacs. In this case, the 599 return to Emacs afterward; it does not truly "exit" from Emacs. In
626 shell command `exit' is the usual way to get back to Emacs from the 600 this case, the shell command `exit' is the usual way to get back to
627 subshell. 601 Emacs from the subshell.
628 602
629 The time to use C-x C-c is when you are about to log out. It's also 603 The time to use C-x C-c is when you are about to log out. It's also
630 the right thing to use to exit an Emacs invoked under mail handling 604 the right thing to use to exit an Emacs invoked under mail handling
631 programs and other random utilities, since they may not know how to 605 programs and other miscellaneous utilities, since they may not know
632 cope with suspension of Emacs. On other occasions, use C-z, and 606 how to cope with suspension of Emacs. In ordinary circumstances,
633 resume the Emacs when you have more editing to do. 607 though, if you are not about to log out, it is better to suspend Emacs
634 608 with C-z instead of exiting Emacs.
635 There are many C-x commands. The ones you know are: 609
610 There are many C-x commands. Here is a list of the ones you have learned:
636 611
637 C-x C-f Find file. 612 C-x C-f Find file.
638 C-x C-s Save file. 613 C-x C-s Save file.
639 C-x C-b List buffers. 614 C-x C-b List buffers.
640 C-x C-c Quit Emacs. 615 C-x C-c Quit Emacs.
641 C-x u Undo. 616 C-x u Undo.
642 617
643 Named eXtended commands are commands which are used even less 618 Named eXtended commands are commands which are used even less
644 frequently, or commands which are used only in certain modes. These 619 frequently, or commands which are used only in certain modes. An
645 commands are usually called "functions". An example is the function 620 example is the command replace-string, which globally replaces one
646 replace-string, which globally replaces one string with another. When 621 string with another. When you type M-x, Emacs prompts you at the
647 you type M-x, Emacs prompts you at the bottom of the screen with 622 bottom of the screen with M-x and you should type the name of the
648 M-x and you should type the name of the function you wish to call; in 623 command; in this case, "replace-string". Just type "repl s<TAB>" and
649 this case, "replace-string". Just type "repl s<TAB>" and Emacs will 624 Emacs will complete the name. End the command name with <Return>.
650 complete the name. End the command name with <Return>. 625
651 Then type the two "arguments"--the string to be replaced, and the string 626 The replace-string command requires two arguments--the string to be
652 to replace it with--each one ended with a Return. 627 replaced, and the string to replace it with. You must end each
628 argument with <Return>.
653 629
654 >> Move the cursor to the blank line two lines below this one. 630 >> Move the cursor to the blank line two lines below this one.
655 Then type M-x repl s<Return>changed<Return>altered<Return>. 631 Then type M-x repl s<Return>changed<Return>altered<Return>.
656 632
657 Notice how this line has changed: you've replaced 633 Notice how this line has changed: you've replaced
658 the word c-h-a-n-g-e-d with "altered" wherever it occurred 634 the word c-h-a-n-g-e-d with "altered" wherever it occurred,
659 after the cursor. 635 after the initial position of the cursor.
660 636
661 637
662 * AUTO SAVE 638 * AUTO SAVE
663 ----------- 639 -----------
664 640
665 When you have made changes in a file, but you have not saved them yet, 641 When you have made changes in a file, but you have not saved them yet,
666 they could be lost if your computer crashes. To protect you from 642 they could be lost if your computer crashes. To protect you from
667 this, Emacs writes "auto save" files periodically. The auto save file 643 this, Emacs periodically writes an "auto save" file for each file that
668 name has a # at the beginning and the end; for example, if your file 644 you are editing. The auto save file name has a # at the beginning and
669 is named "hello.c", its auto save file's name is "#hello.c#". When 645 the end; for example, if your file is named "hello.c", its auto save
670 you save the file in the normal way, its auto save file is no longer 646 file's name is "#hello.c#". When you save the file in the normal way,
671 necessary so Emacs deletes it. 647 Emacs deletes its auto save file.
672 648
673 If the computer crashes, you can recover your auto-saved editing by 649 If the computer crashes, you can recover your auto-saved editing by
674 finding the file normally (the file you were editing, not the auto 650 finding the file normally (the file you were editing, not the auto
675 save file) and then typing M-x recover file<return>. When it asks for 651 save file) and then typing M-x recover file<return>. When it asks for
676 confirmation, type yes<return> to go ahead and recover the auto-save 652 confirmation, type yes<return> to go ahead and recover the auto-save
677 data. 653 data.
678 654
679 655
656 * ECHO AREA
657 -----------
658
659 If Emacs sees that you are typing commands slowly it shows them to you
660 at the bottom of the screen in an area called the "echo area." The echo
661 area contains the bottom line of the screen.
662
663
680 * MODE LINE 664 * MODE LINE
681 ----------- 665 -----------
682 666
683 If Emacs sees that you are typing commands slowly it shows them to you 667 The line immediately above the echo area it is called the "mode line".
684 at the bottom of the screen in an area called the "echo area." The echo 668 The mode line says something like this:
685 area contains the bottom line of the screen. The line immediately above 669
686 it is called the MODE LINE. The mode line says something like 670 --**-Emacs: TUTORIAL (Fundamental)--L670--58%----------------
687 671
688 --**--Emacs: TUTORIAL (Fundamental)----58%------------- 672 This line gives useful information about the status of Emacs and
689 673 the text you are editing.
690 This is a very useful "information" line.
691 674
692 You already know what the filename means--it is the file you have 675 You already know what the filename means--it is the file you have
693 found. What the --NN%-- means is that NN percent of the file is 676 found. -NN%-- indicates your current position in the text; it means
694 above the top of the screen. If the top of the file is on the screen, 677 that NN percent of the text is above the top of the screen. If the
695 it will say --TOP-- instead of --00%--. If the bottom of the file is 678 top of the file is on the screen, it will say --Top-- instead of
696 on the screen, it will say --BOT--. If you are looking at a file so 679 --00%--. If the bottom of the text is on the screen, it will say
697 small it all fits on the screen, it says --ALL--. 680 --Bot--. If you are looking at text so small that all of it fits on
681 the screen, the mode line says --All--.
698 682
699 The stars near the front mean that you have made changes to the text. 683 The stars near the front mean that you have made changes to the text.
700 Right after you visit or save a file, there are no stars, just dashes. 684 Right after you visit or save a file, that part of the mode line shows
685 no stars, just dashes.
701 686
702 The part of the mode line inside the parentheses is to tell you what 687 The part of the mode line inside the parentheses is to tell you what
703 modes you are in. The default mode is Fundamental which is what you 688 editing modes you are in. The default mode is Fundamental which is
704 are in now. It is an example of a "major mode". There are several 689 what you are using now. It is an example of a "major mode".
705 major modes in Emacs for editing different languages and text, such as 690
706 Lisp mode, Text mode, etc. At any time one and only one major mode is 691 Emacs has many different major modes. Some of them are meant for
707 active, and its name can always be found in the mode line just where 692 editing different languages and/or kinds of text, such as Lisp mode,
708 "Fundamental" is now. Each major mode makes a few commands behave 693 Text mode, etc. At any time one and only one major mode is active,
709 differently. For example, there are commands for creating comments in 694 and its name can always be found in the mode line just where
710 a program, and since each programming language has a different idea of 695 "Fundamental" is now.
711 what a comment should look like, each major mode has to insert 696
712 comments differently. Each major mode is the name of an extended 697 Each major mode makes a few commands behave differently. For example,
713 command, which is how you get into the mode. For example, 698 there are commands for creating comments in a program, and since each
714 M-x fundamental-mode is how to get into Fundamental mode. 699 programming language has a different idea of what a comment should
700 look like, each major mode has to insert comments differently. Each
701 major mode is the name of an extended command, which is how you can
702 switch to that mode. For example, M-x fundamental-mode is a command to
703 switch to Fundamental mode.
715 704
716 If you are going to be editing English text, such as this file, you 705 If you are going to be editing English text, such as this file, you
717 should probably use Text Mode. 706 should probably use Text Mode.
718 >> Type M-x text-mode<Return>. 707 >> Type M-x text-mode<Return>.
719 708
720 Don't worry, none of the commands you have learned changes Emacs in 709 Don't worry, none of the commands you have learned changes Emacs in
721 any great way. But you can observe that apostrophes are now part of 710 any great way. But you can observe that M-f and M-b now treat
722 words when you do M-f or M-b. Major modes are usually like that: 711 apostrophes as part of words. Previously, in Fundamental mode,
723 commands don't change into completely unrelated things, but they work 712 M-f and M-b treated apostrophes as word-separators.
724 a little bit differently. 713
725 714 Major modes usually make subtle changes like that one: most commands
726 To get documentation on your current major mode, type C-h m. 715 do "the same job" in each major mode, but they work a little bit
716 differently.
717
718 To view documentation on your current major mode, type C-h m.
727 719
728 >> Use C-u C-v once or more to bring this line near the top of screen. 720 >> Use C-u C-v once or more to bring this line near the top of screen.
729 >> Type C-h m, to see how Text mode differs from Fundamental mode. 721 >> Type C-h m, to see how Text mode differs from Fundamental mode.
730 >> Type C-x 1 to remove the documentation from the screen. 722 >> Type C-x 1 to remove the documentation from the screen.
731 723
732 Major modes are called major because there are also minor modes. 724 Major modes are called major because there are also minor modes.
733 They are called minor because they aren't alternatives to the major 725 Minor modes are alternatives not to the major modes, just minor
734 modes, just minor modifications of them. Each minor mode can be 726 modifications of them. Each minor mode can be turned on or off by
735 turned on or off by itself, regardless of what major mode you are in, 727 itself, independent of all other minor modes, and independent of your
736 and regardless of the other minor modes. So you can use no minor 728 major mode. So you can use no minor modes, or one minor mode, or any
737 modes, or one minor mode, or any combination of several minor modes. 729 combination of several minor modes.
738 730
739 One minor mode which is very useful, especially for editing English 731 One minor mode which is very useful, especially for editing English
740 text, is Auto Fill mode. When this mode is on, Emacs breaks the line 732 text, is Auto Fill mode. When this mode is on, Emacs breaks the line
741 in between words automatically whenever the line gets too long. You 733 in between words automatically whenever you insert text and make a
742 can turn this mode on by doing M-x auto-fill-mode<Return>. When the 734 line that is too wide.
743 mode is on, you can turn it off by doing M-x auto-fill-mode<Return>. 735
744 If the mode is off, this function turns it on, and if the mode is on, 736 You can turn Auto Fill mode on by doing M-x auto-fill-mode<Return>.
745 this function turns it off. This is called "toggling". 737 When the mode is on, you can turn it off by doing M-x
738 auto-fill-mode<Return>. If the mode is off, this command turns it on,
739 and if the mode is on, this command turns it off. We say that the
740 command "toggles the mode".
746 741
747 >> Type M-x auto-fill-mode<Return> now. Then insert a line of "asdf " 742 >> Type M-x auto-fill-mode<Return> now. Then insert a line of "asdf "
748 over again until you see it divide into two lines. You must put in 743 over again until you see it divide into two lines. You must put in
749 spaces between them because Auto Fill breaks lines only at spaces. 744 spaces between them because Auto Fill breaks lines only at spaces.
750 745
762 To re-fill the paragraph, type M-q (Meta-q) with the cursor inside 757 To re-fill the paragraph, type M-q (Meta-q) with the cursor inside
763 that paragraph. 758 that paragraph.
764 759
765 >> Move the cursor into the previous paragraph and type M-q. 760 >> Move the cursor into the previous paragraph and type M-q.
766 761
767
768 * SEARCHING 762 * SEARCHING
769 ----------- 763 -----------
770 764
771 Emacs can do searches for strings (these are groups of contiguous 765 Emacs can do searches for strings (these are groups of contiguous
772 characters or words) either forward through the file or backward 766 characters or words) either forward through the text or backward
773 through it. To search for the string means that you are trying to 767 through it. Searching for a string is a cursor motion command;
774 locate it somewhere in the file and have Emacs show you where the 768 it moves the cursor to the next place where that string appears.
775 occurrences of the string exist. This type of search is somewhat 769
776 different from what you may be familiar with. It is a search that is 770 The Emacs search command is different from the search commands
777 performed as you type in the thing to search for. The command to 771 of most editors, in that it is "incremental". This means that the
778 initiate a search is C-s for forward search, and C-r for reverse 772 search happens while you type in the string to search for.
779 search. BUT WAIT! Don't do them now. When you type C-s you'll 773
780 notice that the string "I-search" appears as a prompt in the echo 774 The command to initiate a search is C-s for forward search, and C-r
781 area. This tells you that Emacs is in what is called an incremental 775 for reverse search. BUT WAIT! Don't try them now.
782 search waiting for you to type the thing that you want to search for. 776
783 <RET> terminates a search. 777 When you type C-s you'll notice that the string "I-search" appears as
778 a prompt in the echo area. This tells you that Emacs is in what is
779 called an incremental search waiting for you to type the thing that
780 you want to search for. <RET> terminates a search.
784 781
785 >> Now type C-s to start a search. SLOWLY, one letter at a time, 782 >> Now type C-s to start a search. SLOWLY, one letter at a time,
786 type the word 'cursor', pausing after you type each 783 type the word 'cursor', pausing after you type each
787 character to notice what happens to the cursor. 784 character to notice what happens to the cursor.
788 >> Type C-s to find the next occurrence of "cursor". 785 Now you have searched for "cursor", once.
786 >> Type C-s again, to search for the next occurrence of "cursor".
789 >> Now type <Delete> four times and see how the cursor moves. 787 >> Now type <Delete> four times and see how the cursor moves.
790 >> Type <RET> to terminate the search. 788 >> Type <RET> to terminate the search.
791 789
792 Did you see what happened? Emacs, in an incremental search, tries to 790 Did you see what happened? Emacs, in an incremental search, tries to
793 go to the occurrence of the string that you've typed out so far. To go 791 go to the occurrence of the string that you've typed out so far. To
794 to the next occurrence of 'cursor' just type C-s again. If no such 792 go to the next occurrence of 'cursor' just type C-s again. If no such
795 occurrence exists Emacs beeps and tells you that it is a failing 793 occurrence exists Emacs beeps and tells you the search is currently
796 search. C-g would also terminate the search. 794 "failing", C-g would also terminate the search.
797 795
798 NOTE: On some systems, typing C-s will freeze the screen and you will 796 NOTE: On some systems, typing C-s will freeze the screen and you will
799 see no further output from Emacs. This indicates that an operating 797 see no further output from Emacs. This indicates that an operating
800 system "feature" called "flow control" is intercepting the C-s and not 798 system "feature" called "flow control" is intercepting the C-s and not
801 letting it get through to Emacs. To unfreeze the screen, type C-q. 799 letting it get through to Emacs. To unfreeze the screen, type C-q.
803 Emacs manual for advice on dealing with this "feature". 801 Emacs manual for advice on dealing with this "feature".
804 802
805 If you are in the middle of an incremental search and type <Delete>, 803 If you are in the middle of an incremental search and type <Delete>,
806 you'll notice that the last character in the search string is erased 804 you'll notice that the last character in the search string is erased
807 and the search backs up to the last place of the search. For 805 and the search backs up to the last place of the search. For
808 instance, suppose you currently have typed 'cu' and you see that your 806 instance, suppose you have typed "c", to search for the first
809 cursor is at the first occurrence of 'cu'. If you now type <Delete>, 807 occurrence of "c". Now if you type "u", the cursor will move
810 the 'u' on the search line is erased and you'll be repositioned in the 808 to the first occurrence of "cu". Now type <Delete>. This erases
811 text to the occurrence of 'c' where the search took you before you 809 the "u" from the search string, and the cursor moves back to
812 typed the 'u'. This provides a useful means for backing up while you 810 the first occurrence of "c".
813 are searching.
814 811
815 If you are in the middle of a search and type a control or meta 812 If you are in the middle of a search and type a control or meta
816 character (with a few exceptions--characters that are special in 813 character (with a few exceptions--characters that are special in
817 a search, such as C-s and C-r), the search is terminated. 814 a search, such as C-s and C-r), the search is terminated.
818 815
819 The C-s starts a search that looks for any occurrence of the search 816 The C-s starts a search that looks for any occurrence of the search
820 string AFTER the current cursor position. But what if you want to 817 string AFTER the current cursor position. If you want to search for
821 search for something earlier in the text? To do this, type C-r for 818 something earlier in the text, type C-r instead. Everything that we
822 Reverse search. Everything that applies to C-s applies to C-r except 819 have said about C-s also applies to C-r, except that the direction of
823 that the direction of the search is reversed. 820 the search is reversed.
824 821
825 822
826 * MULTIPLE WINDOWS 823 * MULTIPLE WINDOWS
827 ------------------ 824 ------------------
828 825
833 830
834 >> Now type C-x 2 which splits the screen into two windows. 831 >> Now type C-x 2 which splits the screen into two windows.
835 Both windows display this tutorial. The cursor stays in the top window. 832 Both windows display this tutorial. The cursor stays in the top window.
836 833
837 >> Type C-M-v to scroll the bottom window. 834 >> Type C-M-v to scroll the bottom window.
838 (If you don't have a real Meta key, type ESC C-v.) 835 (If you do not have a real Meta key, type ESC C-v.)
839 836
840 >> Type C-x o ("o" for "other") to move the cursor to the bottom window. 837 >> Type C-x o ("o" for "other") to move the cursor to the bottom window.
841 >> Use C-v and M-v in the bottom window to scroll it. 838 >> Use C-v and M-v in the bottom window to scroll it.
842 Keep reading these directions in the top window. 839 Keep reading these directions in the top window.
843 840
844 >> Type C-x o again to move the cursor back to the top window. 841 >> Type C-x o again to move the cursor back to the top window.
845 The cursor is still just where it was in the top window before. 842 The cursor in the top window is just where it was before.
846 843
847 You can keep using C-x o to switch between the windows. Each 844 You can keep using C-x o to switch between the windows. Each
848 window has its own cursor position, but only one window actually 845 window has its own cursor position, but only one window actually
849 shows the cursor. All the ordinary editing commands apply to the 846 shows the cursor. All the ordinary editing commands apply to the
850 window that the cursor is in. 847 window that the cursor is in. We call this the "selected window".
851 848
852 The command C-M-v is very useful when you are editing text in one 849 The command C-M-v is very useful when you are editing text in one
853 window and using the other window just for reference. You can keep 850 window and using the other window just for reference. You can keep
854 the cursor always in the window where you are editing, and edit 851 the cursor always in the window where you are editing, and advance
855 there as you advance through the other window. 852 through the other window sequentially with C-M-v.
856 853
857 C-M-v is an example of a CONTROL-META character. If you have a real 854 C-M-v is an example of a CONTROL-META character. If you have a real
858 META key, you can type C-M-v by holding down both CTRL and META while 855 META key, you can type C-M-v by holding down both CTRL and META while
859 typing v. 856 typing v. It does not matter whether CTRL or META "comes first,"
860 857 because both of these keys act by modifying the characters you type.
861 It doesn't matter whether CTRL or META "comes first," because both of 858
862 these keys act by modifying the characters you type. But if you don't 859 If you do not have a real META key, and you use ESC instead, the order
863 have a real META key, and you use ESC instead, the order does matter: 860 does matter: you must type ESC followed by CTRL-v; CTRL-ESC v will not
864 you must type ESC followed by CTRL-v; CTRL-ESC v will not work. This 861 work. This is because ESC is a character in its own right, not a
865 is because ESC is a character in its own right, not a modifier key. 862 modifier key.
866 863
867 >> Type C-x 1 (in the top window) to get rid of the bottom window. 864 >> Type C-x 1 (in the top window) to get rid of the bottom window.
868 865
869 (If you had typed C-x 1 in the bottom window, that would get rid 866 (If you had typed C-x 1 in the bottom window, that would get rid
870 of the top one. Think of this command as "Keep just one 867 of the top one. Think of this command as "Keep just one
871 window--the window I am already in.") 868 window--the window I am already in.")
872 869
873 You don't have to display the same buffer in both windows. If 870 You do not have to display the same buffer in both windows. If you
874 you use C-x C-f to find a file in one window, the other window 871 use C-x C-f to find a file in one window, the other window does not
875 doesn't change. You can pick a file in each window 872 change. You can find a file in each window independently.
876 independently.
877 873
878 Here is another way to use two windows to display two different 874 Here is another way to use two windows to display two different
879 things: 875 things:
880 876
881 >> Type C-x 4 C-f followed by the name of one of your files. 877 >> Type C-x 4 C-f followed by the name of one of your files.
882 End with <RETURN>. See the specified file appear in the bottom 878 End with <Return>. See the specified file appear in the bottom
883 window. The cursor goes there, too. 879 window. The cursor goes there, too.
884 880
885 >> Type C-x o to go back to the top window, and C-x 1 to delete 881 >> Type C-x o to go back to the top window, and C-x 1 to delete
886 the bottom window. 882 the bottom window.
887 883
898 an all-purpose "get out" command. You can also use it for eliminating 894 an all-purpose "get out" command. You can also use it for eliminating
899 extra windows, and getting out of the minibuffer. 895 extra windows, and getting out of the minibuffer.
900 896
901 >> Type M-x to get into a minibuffer; then type ESC ESC ESC to get out. 897 >> Type M-x to get into a minibuffer; then type ESC ESC ESC to get out.
902 898
903 You can't use C-g to get out of a recursive editing level because C-g 899 You cannot use C-g to get out of a recursive editing level. This is
904 is used for canceling commands and arguments WITHIN the recursive 900 because C-g is used for canceling commands and arguments WITHIN the
905 editing level. 901 recursive editing level.
906 902
907 903
908 * GETTING MORE HELP 904 * GETTING MORE HELP
909 ------------------- 905 -------------------
910 906
911 In this tutorial we have tried to supply just enough information to 907 In this tutorial we have tried to supply just enough information to
912 get you started using Emacs. There is so much available in Emacs that 908 get you started using Emacs. There is so much available in Emacs that
913 it would be impossible to explain it all here. However, you may want 909 it would be impossible to explain it all here. However, you may want
914 to learn more about Emacs since it has numerous desirable features 910 to learn more about Emacs since it has many other useful features.
915 that you don't know about yet. Emacs has a great deal of internal 911 Emacs provides commands for reading documentation about Emacs
916 documentation. All of these commands can be accessed through 912 commands. These "help" commands all start with the character
917 the character Control-h, which we call "the Help character" 913 Control-h, which is called "the Help character".
918 because of the function it serves. 914
919 915 To use the Help features, type the C-h character, and then a
920 To use the HELP features, type the C-h character, and then a
921 character saying what kind of help you want. If you are REALLY lost, 916 character saying what kind of help you want. If you are REALLY lost,
922 type C-h ? and Emacs will tell you what kinds of help it can give. 917 type C-h ? and Emacs will tell you what kinds of help it can give.
923 If you have typed C-h and decide you don't want any help, just 918 If you have typed C-h and decide you do not want any help, just
924 type C-g to cancel it. 919 type C-g to cancel it.
920
921 (Some sites rebind the character C-h. They really should not do this
922 as a blanket measure, so complain to the system administrator.
923 Meanwhile, if C-h does not display a message about help at the bottom
924 of the screen, try typing M-x help RET instead.)
925 925
926 The most basic HELP feature is C-h c. Type C-h, a c, and a 926 The most basic HELP feature is C-h c. Type C-h, a c, and a
927 command character or sequence, and Emacs displays a very brief 927 command character or sequence, and Emacs displays a very brief
928 description of the command. 928 description of the command.
929 929
930 >> Type C-h c Control-p. 930 >> Type C-h c Control-p.
931 The message should be something like 931 The message should be something like
932 932
933 C-p runs the command previous-line 933 C-p runs the command previous-line
934 934
935 This tells you the "name of the function". That is important in 935 This tells you the "name of the function". Function names are used
936 writing Lisp code to extend Emacs; it also is enough to remind 936 mainly for customizing and extending Emacs. But since function names
937 you of what the command does if you have seen it before but did 937 are chosen to indicate what the command does, they can serve also as
938 not remember. 938 very brief documentation--sufficient to remind you of commands you
939 have already learned.
939 940
940 Multi-character commands such as C-x C-s and (if you have no META or 941 Multi-character commands such as C-x C-s and (if you have no META or
941 EDIT key) <ESC>v are also allowed after C-h c. 942 EDIT or ALT key) <ESC>v are also allowed after C-h c.
942 943
943 To get more information on the command, use C-h k instead of C-h c. 944 To get more information about a command, use C-h k instead of C-h c.
944 945
945 >> Type C-h k Control-p. 946 >> Type C-h k Control-p.
946 947
947 This displays the documentation of the function, as well as its 948 This displays the documentation of the function, as well as its
948 name, in an Emacs window. When you are finished reading the 949 name, in an Emacs window. When you are finished reading the
949 output, type C-x 1 to get rid of the help text. You do not have 950 output, type C-x 1 to get rid of the help text. You do not have
950 to do this right away. You can do some editing while referring 951 to do this right away. You can do some editing while referring
951 to the help text and then type C-x 1. 952 to the help text, and then type C-x 1.
952 953
953 Here are some other useful C-h options: 954 Here are some other useful C-h options:
954 955
955 C-h f Describe a function. You type in the name of the 956 C-h f Describe a function. You type in the name of the
956 function. 957 function.
961 962
962 C-h a Command Apropos. Type in a keyword and Emacs will list 963 C-h a Command Apropos. Type in a keyword and Emacs will list
963 all the commands whose names contain that keyword. 964 all the commands whose names contain that keyword.
964 These commands can all be invoked with Meta-x. 965 These commands can all be invoked with Meta-x.
965 For some commands, Command Apropos will also list a one 966 For some commands, Command Apropos will also list a one
966 or two character sequence which has the same effect. 967 or two character sequence which runs the same command.
967 968
968 >> Type C-h a file<Return>. 969 >> Type C-h a file<Return>.
969 970
970 This displays in another window a list of all M-x commands with 971 This displays in another window a list of all M-x commands with "file"
971 "file" in their names. You will also see commands like C-x C-f 972 in their names. You will see character-commands like C-x C-f listed
972 and C-x C-w, listed beside the command names find-file and 973 beside the corresponding command names such as find-file.
973 write-file.
974 974
975 >> Type C-M-v to scroll the help window. Do this a few times. 975 >> Type C-M-v to scroll the help window. Do this a few times.
976 976
977 >> Type C-x 1 to delete the help window. 977 >> Type C-x 1 to delete the help window.
978 978
979 979
980 * CONCLUSION 980 * CONCLUSION
981 ------------ 981 ------------
982 982
983 Remember, to exit Emacs permanently use C-x C-c. To exit to a shell 983 Remember, to exit Emacs permanently use C-x C-c. To exit to a shell
984 temporarily, so that you can come back in, use C-z. (This does not 984 temporarily, so that you can come back to Emacs afterward, use C-z.
985 work under X windows, because there is no real concept of exiting
986 temporarily to the shell. Instead, C-z iconifies the Emacs screen.)
987 985
988 This tutorial is meant to be understandable to all new users, so if 986 This tutorial is meant to be understandable to all new users, so if
989 you found something unclear, don't sit and blame yourself - complain! 987 you found something unclear, don't sit and blame yourself - complain!
990 988
991 989
992 COPYING 990 COPYING
993 ------- 991 -------
994 992
995 This tutorial descends from a long line of Emacs tutorials 993 This tutorial descends from a long line of Emacs tutorials
996 starting with the one written by Stuart Cracraft for the original Emacs. 994 starting with the one written by Stuart Cracraft for the original Emacs.
997 Ben Wing updated the tutorial for X Windows.
998 995
999 This version of the tutorial, like GNU Emacs, is copyrighted, and 996 This version of the tutorial, like GNU Emacs, is copyrighted, and
1000 comes with permission to distribute copies on certain conditions: 997 comes with permission to distribute copies on certain conditions:
1001 998
1002 Copyright (c) 1985, 1996 Free Software Foundation 999 Copyright (c) 1985, 1996 Free Software Foundation
1010 Permission is granted to distribute modified versions 1007 Permission is granted to distribute modified versions
1011 of this document, or of portions of it, 1008 of this document, or of portions of it,
1012 under the above conditions, provided also that they 1009 under the above conditions, provided also that they
1013 carry prominent notices stating who last altered them. 1010 carry prominent notices stating who last altered them.
1014 1011
1015 The conditions for copying Emacs itself are slightly different 1012 The conditions for copying Emacs itself are more complex, but in the
1016 but in the same spirit. Please read the file COPYING and then 1013 same spirit. Please read the file COPYING and then do give copies of
1017 do give copies of GNU Emacs to your friends. 1014 GNU Emacs to your friends. Help stamp out software obstructionism
1018 Help stamp out software obstructionism ("ownership") by using, 1015 ("ownership") by using, writing, and sharing free software!
1019 writing, and sharing free software!