Mercurial > vim
annotate runtime/tutor/tutor.utf-8 @ 25765:d62bf68986df v8.2.3418
patch 8.2.3418: garbage collection while evaluating may cause trouble
Commit: https://github.com/vim/vim/commit/070ac3433b0ebefd6dc6cd49707fcfa1421b9e67
Author: Christian Brabandt <cb@256bit.org>
Date: Thu Sep 9 12:12:03 2021 +0200
patch 8.2.3418: garbage collection while evaluating may cause trouble
Problem: Garbage collection while evaluating may cause trouble.
Solution: Disable garbage collection while evaluating an expression.
(Christian Brabandt, issue #8848)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 09 Sep 2021 12:15:06 +0200 |
parents | d4faa2c5211b |
children | 65de67669df3 |
rev | line source |
---|---|
1624 | 1 =============================================================================== |
2 = W e l c o m e t o t h e V I M T u t o r - Version 1.7 = | |
3 =============================================================================== | |
4 | |
5 Vim is a very powerful editor that has many commands, too many to | |
6 explain in a tutor such as this. This tutor is designed to describe | |
7 enough of the commands that you will be able to easily use Vim as | |
8 an all-purpose editor. | |
9 | |
19968 | 10 The approximate time required to complete the tutor is 30 minutes, |
1624 | 11 depending upon how much time is spent with experimentation. |
12 | |
13 ATTENTION: | |
14 The commands in the lessons will modify the text. Make a copy of this | |
12499 | 15 file to practice on (if you started "vimtutor" this is already a copy). |
1624 | 16 |
17 It is important to remember that this tutor is set up to teach by | |
18 use. That means that you need to execute the commands to learn them | |
19 properly. If you only read the text, you will forget the commands! | |
20 | |
13231 | 21 Now, make sure that your Caps-Lock key is NOT depressed and press |
14347 | 22 the j key enough times to move the cursor so that lesson 1.1 |
1624 | 23 completely fills the screen. |
24 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
25 Lesson 1.1: MOVING THE CURSOR | |
26 | |
27 | |
28 ** To move the cursor, press the h,j,k,l keys as indicated. ** | |
29 ^ | |
30 k Hint: The h key is at the left and moves left. | |
31 < h l > The l key is at the right and moves right. | |
32 j The j key looks like a down arrow. | |
33 v | |
34 1. Move the cursor around the screen until you are comfortable. | |
35 | |
36 2. Hold down the down key (j) until it repeats. | |
37 Now you know how to move to the next lesson. | |
38 | |
14347 | 39 3. Using the down key, move to lesson 1.2. |
1624 | 40 |
41 NOTE: If you are ever unsure about something you typed, press <ESC> to place | |
42 you in Normal mode. Then retype the command you wanted. | |
43 | |
44 NOTE: The cursor keys should also work. But using hjkl you will be able to | |
45 move around much faster, once you get used to it. Really! | |
46 | |
47 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
48 Lesson 1.2: EXITING VIM | |
49 | |
50 | |
51 !! NOTE: Before executing any of the steps below, read this entire lesson!! | |
52 | |
53 1. Press the <ESC> key (to make sure you are in Normal mode). | |
54 | |
55 2. Type: :q! <ENTER>. | |
56 This exits the editor, DISCARDING any changes you have made. | |
57 | |
6153 | 58 3. Get back here by executing the command that got you into this tutor. That |
59 might be: vimtutor <ENTER> | |
1624 | 60 |
61 4. If you have these steps memorized and are confident, execute steps | |
62 1 through 3 to exit and re-enter the editor. | |
63 | |
64 NOTE: :q! <ENTER> discards any changes you made. In a few lessons you | |
65 will learn how to save the changes to a file. | |
66 | |
14347 | 67 5. Move the cursor down to lesson 1.3. |
1624 | 68 |
69 | |
70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
71 Lesson 1.3: TEXT EDITING - DELETION | |
72 | |
73 | |
74 ** Press x to delete the character under the cursor. ** | |
75 | |
76 1. Move the cursor to the line below marked --->. | |
77 | |
78 2. To fix the errors, move the cursor until it is on top of the | |
79 character to be deleted. | |
80 | |
81 3. Press the x key to delete the unwanted character. | |
82 | |
83 4. Repeat steps 2 through 4 until the sentence is correct. | |
84 | |
85 ---> The ccow jumpedd ovverr thhe mooon. | |
86 | |
14347 | 87 5. Now that the line is correct, go on to lesson 1.4. |
1624 | 88 |
89 NOTE: As you go through this tutor, do not try to memorize, learn by usage. | |
90 | |
91 | |
92 | |
93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
94 Lesson 1.4: TEXT EDITING - INSERTION | |
95 | |
96 | |
97 ** Press i to insert text. ** | |
98 | |
99 1. Move the cursor to the first line below marked --->. | |
100 | |
101 2. To make the first line the same as the second, move the cursor on top | |
15878 | 102 of the character BEFORE which the text is to be inserted. |
1624 | 103 |
104 3. Press i and type in the necessary additions. | |
105 | |
106 4. As each error is fixed press <ESC> to return to Normal mode. | |
107 Repeat steps 2 through 4 to correct the sentence. | |
108 | |
109 ---> There is text misng this . | |
110 ---> There is some text missing from this line. | |
111 | |
112 5. When you are comfortable inserting text move to lesson 1.5. | |
113 | |
114 | |
115 | |
116 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
117 Lesson 1.5: TEXT EDITING - APPENDING | |
118 | |
119 | |
120 ** Press A to append text. ** | |
121 | |
122 1. Move the cursor to the first line below marked --->. | |
123 It does not matter on what character the cursor is in that line. | |
124 | |
125 2. Press A and type in the necessary additions. | |
126 | |
127 3. As the text has been appended press <ESC> to return to Normal mode. | |
128 | |
14347 | 129 4. Move the cursor to the second line marked ---> and repeat |
1624 | 130 steps 2 and 3 to correct this sentence. |
131 | |
132 ---> There is some text missing from th | |
133 There is some text missing from this line. | |
134 ---> There is also some text miss | |
135 There is also some text missing here. | |
136 | |
137 5. When you are comfortable appending text move to lesson 1.6. | |
138 | |
139 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
140 Lesson 1.6: EDITING A FILE | |
141 | |
142 ** Use :wq to save a file and exit. ** | |
143 | |
144 !! NOTE: Before executing any of the steps below, read this entire lesson!! | |
145 | |
25700 | 146 1. If you have access to another terminal, do the following there. |
147 Otherwise, exit this tutor as you did in lesson 1.2: :q! | |
1624 | 148 |
25700 | 149 2. At the shell prompt type this command: vim file.txt <ENTER> |
150 'vim' is the command to start the Vim editor, 'file.txt' is the name of | |
151 the file you wish to edit. Use the name of a file that you can change. | |
1624 | 152 |
153 3. Insert and delete text as you learned in the previous lessons. | |
154 | |
14347 | 155 4. Save the file with changes and exit Vim with: :wq <ENTER> |
1624 | 156 |
157 5. If you have quit vimtutor in step 1 restart the vimtutor and move down to | |
158 the following summary. | |
159 | |
160 6. After reading the above steps and understanding them: do it. | |
14347 | 161 |
1624 | 162 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
163 Lesson 1 SUMMARY | |
164 | |
165 | |
166 1. The cursor is moved using either the arrow keys or the hjkl keys. | |
167 h (left) j (down) k (up) l (right) | |
168 | |
169 2. To start Vim from the shell prompt type: vim FILENAME <ENTER> | |
170 | |
171 3. To exit Vim type: <ESC> :q! <ENTER> to trash all changes. | |
172 OR type: <ESC> :wq <ENTER> to save the changes. | |
173 | |
174 4. To delete the character at the cursor type: x | |
175 | |
176 5. To insert or append text type: | |
177 i type inserted text <ESC> insert before the cursor | |
178 A type appended text <ESC> append after the line | |
179 | |
180 NOTE: Pressing <ESC> will place you in Normal mode or will cancel | |
181 an unwanted and partially completed command. | |
182 | |
14347 | 183 Now continue with lesson 2. |
1624 | 184 |
185 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
186 Lesson 2.1: DELETION COMMANDS | |
187 | |
188 | |
189 ** Type dw to delete a word. ** | |
190 | |
191 1. Press <ESC> to make sure you are in Normal mode. | |
192 | |
193 2. Move the cursor to the line below marked --->. | |
194 | |
195 3. Move the cursor to the beginning of a word that needs to be deleted. | |
196 | |
197 4. Type dw to make the word disappear. | |
198 | |
199 NOTE: The letter d will appear on the last line of the screen as you type | |
200 it. Vim is waiting for you to type w . If you see another character | |
201 than d you typed something wrong; press <ESC> and start over. | |
202 | |
203 ---> There are a some words fun that don't belong paper in this sentence. | |
204 | |
14347 | 205 5. Repeat steps 3 and 4 until the sentence is correct and go to lesson 2.2. |
1624 | 206 |
207 | |
208 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
209 Lesson 2.2: MORE DELETION COMMANDS | |
210 | |
211 | |
212 ** Type d$ to delete to the end of the line. ** | |
213 | |
214 1. Press <ESC> to make sure you are in Normal mode. | |
215 | |
216 2. Move the cursor to the line below marked --->. | |
217 | |
218 3. Move the cursor to the end of the correct line (AFTER the first . ). | |
219 | |
220 4. Type d$ to delete to the end of the line. | |
221 | |
222 ---> Somebody typed the end of this line twice. end of this line twice. | |
223 | |
224 | |
14347 | 225 5. Move on to lesson 2.3 to understand what is happening. |
1624 | 226 |
227 | |
228 | |
229 | |
230 | |
231 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
232 Lesson 2.3: ON OPERATORS AND MOTIONS | |
233 | |
234 | |
235 Many commands that change text are made from an operator and a motion. | |
236 The format for a delete command with the d delete operator is as follows: | |
237 | |
238 d motion | |
239 | |
240 Where: | |
241 d - is the delete operator. | |
242 motion - is what the operator will operate on (listed below). | |
243 | |
244 A short list of motions: | |
245 w - until the start of the next word, EXCLUDING its first character. | |
246 e - to the end of the current word, INCLUDING the last character. | |
247 $ - to the end of the line, INCLUDING the last character. | |
248 | |
249 Thus typing de will delete from the cursor to the end of the word. | |
250 | |
251 NOTE: Pressing just the motion while in Normal mode without an operator will | |
252 move the cursor as specified. | |
253 | |
254 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
255 Lesson 2.4: USING A COUNT FOR A MOTION | |
256 | |
257 | |
258 ** Typing a number before a motion repeats it that many times. ** | |
259 | |
14347 | 260 1. Move the cursor to the start of the line below marked --->. |
1624 | 261 |
262 2. Type 2w to move the cursor two words forward. | |
263 | |
264 3. Type 3e to move the cursor to the end of the third word forward. | |
265 | |
266 4. Type 0 (zero) to move to the start of the line. | |
267 | |
268 5. Repeat steps 2 and 3 with different numbers. | |
269 | |
270 ---> This is just a line with words you can move around in. | |
271 | |
14347 | 272 6. Move on to lesson 2.5. |
1624 | 273 |
274 | |
275 | |
276 | |
277 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
278 Lesson 2.5: USING A COUNT TO DELETE MORE | |
279 | |
280 | |
281 ** Typing a number with an operator repeats it that many times. ** | |
282 | |
283 In the combination of the delete operator and a motion mentioned above you | |
284 insert a count before the motion to delete more: | |
285 d number motion | |
286 | |
287 1. Move the cursor to the first UPPER CASE word in the line marked --->. | |
288 | |
14347 | 289 2. Type d2w to delete the two UPPER CASE words. |
1624 | 290 |
291 3. Repeat steps 1 and 2 with a different count to delete the consecutive | |
14347 | 292 UPPER CASE words with one command. |
1624 | 293 |
294 ---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up. | |
295 | |
296 | |
297 | |
298 | |
299 | |
300 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
301 Lesson 2.6: OPERATING ON LINES | |
302 | |
303 | |
304 ** Type dd to delete a whole line. ** | |
305 | |
306 Due to the frequency of whole line deletion, the designers of Vi decided | |
307 it would be easier to simply type two d's to delete a line. | |
308 | |
309 1. Move the cursor to the second line in the phrase below. | |
310 2. Type dd to delete the line. | |
311 3. Now move to the fourth line. | |
312 4. Type 2dd to delete two lines. | |
313 | |
314 ---> 1) Roses are red, | |
315 ---> 2) Mud is fun, | |
316 ---> 3) Violets are blue, | |
317 ---> 4) I have a car, | |
318 ---> 5) Clocks tell time, | |
319 ---> 6) Sugar is sweet | |
320 ---> 7) And so are you. | |
321 | |
22958 | 322 Doubling to operate on a line also works for operators mentioned below. |
1624 | 323 |
324 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
325 Lesson 2.7: THE UNDO COMMAND | |
326 | |
327 | |
328 ** Press u to undo the last commands, U to fix a whole line. ** | |
329 | |
330 1. Move the cursor to the line below marked ---> and place it on the | |
331 first error. | |
332 2. Type x to delete the first unwanted character. | |
333 3. Now type u to undo the last command executed. | |
334 4. This time fix all the errors on the line using the x command. | |
335 5. Now type a capital U to return the line to its original state. | |
336 6. Now type u a few times to undo the U and preceding commands. | |
337 7. Now type CTRL-R (keeping CTRL key pressed while hitting R) a few times | |
338 to redo the commands (undo the undo's). | |
339 | |
340 ---> Fiix the errors oon thhis line and reeplace them witth undo. | |
341 | |
14347 | 342 8. These are very useful commands. Now move on to the lesson 2 Summary. |
1624 | 343 |
344 | |
345 | |
346 | |
347 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
348 Lesson 2 SUMMARY | |
349 | |
350 | |
351 1. To delete from the cursor up to the next word type: dw | |
352 2. To delete from the cursor to the end of a line type: d$ | |
353 3. To delete a whole line type: dd | |
354 | |
355 4. To repeat a motion prepend it with a number: 2w | |
356 5. The format for a change command is: | |
357 operator [number] motion | |
358 where: | |
359 operator - is what to do, such as d for delete | |
360 [number] - is an optional count to repeat the motion | |
361 motion - moves over the text to operate on, such as w (word), | |
362 $ (to the end of line), etc. | |
363 | |
364 6. To move to the start of the line use a zero: 0 | |
365 | |
366 7. To undo previous actions, type: u (lowercase u) | |
367 To undo all the changes on a line, type: U (capital U) | |
368 To undo the undo's, type: CTRL-R | |
369 | |
370 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
371 Lesson 3.1: THE PUT COMMAND | |
372 | |
373 | |
374 ** Type p to put previously deleted text after the cursor. ** | |
375 | |
14347 | 376 1. Move the cursor to the first line below marked --->. |
1624 | 377 |
378 2. Type dd to delete the line and store it in a Vim register. | |
379 | |
380 3. Move the cursor to the c) line, ABOVE where the deleted line should go. | |
381 | |
382 4. Type p to put the line below the cursor. | |
383 | |
384 5. Repeat steps 2 through 4 to put all the lines in correct order. | |
385 | |
386 ---> d) Can you learn too? | |
387 ---> b) Violets are blue, | |
388 ---> c) Intelligence is learned, | |
389 ---> a) Roses are red, | |
390 | |
391 | |
392 | |
393 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
394 Lesson 3.2: THE REPLACE COMMAND | |
395 | |
396 | |
397 ** Type rx to replace the character at the cursor with x . ** | |
398 | |
399 1. Move the cursor to the first line below marked --->. | |
400 | |
401 2. Move the cursor so that it is on top of the first error. | |
402 | |
403 3. Type r and then the character which should be there. | |
404 | |
405 4. Repeat steps 2 and 3 until the first line is equal to the second one. | |
406 | |
407 ---> Whan this lime was tuoed in, someone presswd some wrojg keys! | |
408 ---> When this line was typed in, someone pressed some wrong keys! | |
409 | |
14347 | 410 5. Now move on to lesson 3.3. |
1624 | 411 |
412 NOTE: Remember that you should be learning by doing, not memorization. | |
413 | |
414 | |
415 | |
416 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
417 Lesson 3.3: THE CHANGE OPERATOR | |
418 | |
419 | |
420 ** To change until the end of a word, type ce . ** | |
421 | |
422 1. Move the cursor to the first line below marked --->. | |
423 | |
424 2. Place the cursor on the u in lubw. | |
425 | |
426 3. Type ce and the correct word (in this case, type ine ). | |
427 | |
428 4. Press <ESC> and move to the next character that needs to be changed. | |
429 | |
430 5. Repeat steps 3 and 4 until the first sentence is the same as the second. | |
431 | |
432 ---> This lubw has a few wptfd that mrrf changing usf the change operator. | |
433 ---> This line has a few words that need changing using the change operator. | |
434 | |
435 Notice that ce deletes the word and places you in Insert mode. | |
22958 | 436 cc does the same for the whole line. |
1624 | 437 |
438 | |
439 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
440 Lesson 3.4: MORE CHANGES USING c | |
441 | |
442 | |
443 ** The change operator is used with the same motions as delete. ** | |
444 | |
445 1. The change operator works in the same way as delete. The format is: | |
446 | |
447 c [number] motion | |
448 | |
449 2. The motions are the same, such as w (word) and $ (end of line). | |
450 | |
14347 | 451 3. Move the cursor to the first line below marked --->. |
1624 | 452 |
453 4. Move the cursor to the first error. | |
454 | |
455 5. Type c$ and type the rest of the line like the second and press <ESC>. | |
456 | |
457 ---> The end of this line needs some help to make it like the second. | |
458 ---> The end of this line needs to be corrected using the c$ command. | |
459 | |
460 NOTE: You can use the Backspace key to correct mistakes while typing. | |
461 | |
462 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
463 Lesson 3 SUMMARY | |
464 | |
465 | |
466 1. To put back text that has just been deleted, type p . This puts the | |
467 deleted text AFTER the cursor (if a line was deleted it will go on the | |
468 line below the cursor). | |
469 | |
470 2. To replace the character under the cursor, type r and then the | |
471 character you want to have there. | |
472 | |
473 3. The change operator allows you to change from the cursor to where the | |
474 motion takes you. eg. Type ce to change from the cursor to the end of | |
475 the word, c$ to change to the end of a line. | |
476 | |
477 4. The format for change is: | |
478 | |
479 c [number] motion | |
480 | |
481 Now go on to the next lesson. | |
482 | |
483 | |
484 | |
485 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
486 Lesson 4.1: CURSOR LOCATION AND FILE STATUS | |
487 | |
488 ** Type CTRL-G to show your location in the file and the file status. | |
489 Type G to move to a line in the file. ** | |
490 | |
491 NOTE: Read this entire lesson before executing any of the steps!! | |
492 | |
493 1. Hold down the Ctrl key and press g . We call this CTRL-G. | |
494 A message will appear at the bottom of the page with the filename and the | |
495 position in the file. Remember the line number for Step 3. | |
496 | |
497 NOTE: You may see the cursor position in the lower right corner of the screen | |
498 This happens when the 'ruler' option is set (see :help 'ruler' ) | |
499 | |
500 2. Press G to move you to the bottom of the file. | |
501 Type gg to move you to the start of the file. | |
502 | |
503 3. Type the number of the line you were on and then G . This will | |
504 return you to the line you were on when you first pressed CTRL-G. | |
505 | |
506 4. If you feel confident to do this, execute steps 1 through 3. | |
507 | |
508 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
509 Lesson 4.2: THE SEARCH COMMAND | |
510 | |
511 | |
512 ** Type / followed by a phrase to search for the phrase. ** | |
513 | |
514 1. In Normal mode type the / character. Notice that it and the cursor | |
515 appear at the bottom of the screen as with the : command. | |
516 | |
517 2. Now type 'errroor' <ENTER>. This is the word you want to search for. | |
518 | |
519 3. To search for the same phrase again, simply type n . | |
520 To search for the same phrase in the opposite direction, type N . | |
521 | |
522 4. To search for a phrase in the backward direction, use ? instead of / . | |
523 | |
524 5. To go back to where you came from press CTRL-O (Keep Ctrl down while | |
525 pressing the letter o). Repeat to go back further. CTRL-I goes forward. | |
526 | |
527 ---> "errroor" is not the way to spell error; errroor is an error. | |
528 NOTE: When the search reaches the end of the file it will continue at the | |
529 start, unless the 'wrapscan' option has been reset. | |
530 | |
531 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
532 Lesson 4.3: MATCHING PARENTHESES SEARCH | |
533 | |
534 | |
535 ** Type % to find a matching ),], or } . ** | |
536 | |
537 1. Place the cursor on any (, [, or { in the line below marked --->. | |
538 | |
539 2. Now type the % character. | |
540 | |
541 3. The cursor will move to the matching parenthesis or bracket. | |
542 | |
543 4. Type % to move the cursor to the other matching bracket. | |
544 | |
545 5. Move the cursor to another (,),[,],{ or } and see what % does. | |
546 | |
547 ---> This ( is a test line with ('s, ['s ] and {'s } in it. )) | |
548 | |
549 | |
550 NOTE: This is very useful in debugging a program with unmatched parentheses! | |
551 | |
552 | |
553 | |
554 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
555 Lesson 4.4: THE SUBSTITUTE COMMAND | |
556 | |
557 | |
558 ** Type :s/old/new/g to substitute 'new' for 'old'. ** | |
559 | |
560 1. Move the cursor to the line below marked --->. | |
561 | |
14347 | 562 2. Type :s/thee/the <ENTER> . Note that this command only changes the |
1624 | 563 first occurrence of "thee" in the line. |
564 | |
565 3. Now type :s/thee/the/g . Adding the g flag means to substitute | |
566 globally in the line, change all occurrences of "thee" in the line. | |
567 | |
568 ---> thee best time to see thee flowers is in thee spring. | |
569 | |
570 4. To change every occurrence of a character string between two lines, | |
571 type :#,#s/old/new/g where #,# are the line numbers of the range | |
572 of lines where the substitution is to be done. | |
573 Type :%s/old/new/g to change every occurrence in the whole file. | |
574 Type :%s/old/new/gc to find every occurrence in the whole file, | |
575 with a prompt whether to substitute or not. | |
576 | |
577 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
578 Lesson 4 SUMMARY | |
579 | |
580 | |
581 1. CTRL-G displays your location in the file and the file status. | |
582 G moves to the end of the file. | |
583 number G moves to that line number. | |
584 gg moves to the first line. | |
585 | |
586 2. Typing / followed by a phrase searches FORWARD for the phrase. | |
587 Typing ? followed by a phrase searches BACKWARD for the phrase. | |
588 After a search type n to find the next occurrence in the same direction | |
589 or N to search in the opposite direction. | |
590 CTRL-O takes you back to older positions, CTRL-I to newer positions. | |
591 | |
592 3. Typing % while the cursor is on a (,),[,],{, or } goes to its match. | |
593 | |
594 4. To substitute new for the first old in a line type :s/old/new | |
595 To substitute new for all 'old's on a line type :s/old/new/g | |
596 To substitute phrases between two line #'s type :#,#s/old/new/g | |
597 To substitute all occurrences in the file type :%s/old/new/g | |
598 To ask for confirmation each time add 'c' :%s/old/new/gc | |
599 | |
600 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
601 Lesson 5.1: HOW TO EXECUTE AN EXTERNAL COMMAND | |
602 | |
603 | |
604 ** Type :! followed by an external command to execute that command. ** | |
605 | |
606 1. Type the familiar command : to set the cursor at the bottom of the | |
607 screen. This allows you to enter a command-line command. | |
608 | |
609 2. Now type the ! (exclamation point) character. This allows you to | |
610 execute any external shell command. | |
611 | |
612 3. As an example type ls following the ! and then hit <ENTER>. This | |
613 will show you a listing of your directory, just as if you were at the | |
614 shell prompt. Or use :!dir if ls doesn't work. | |
615 | |
616 NOTE: It is possible to execute any external command this way, also with | |
617 arguments. | |
618 | |
619 NOTE: All : commands must be finished by hitting <ENTER> | |
620 From here on we will not always mention it. | |
621 | |
622 | |
623 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
624 Lesson 5.2: MORE ON WRITING FILES | |
625 | |
626 | |
14347 | 627 ** To save the changes made to the text, type :w FILENAME ** |
1624 | 628 |
629 1. Type :!dir or :!ls to get a listing of your directory. | |
630 You already know you must hit <ENTER> after this. | |
631 | |
632 2. Choose a filename that does not exist yet, such as TEST. | |
633 | |
634 3. Now type: :w TEST (where TEST is the filename you chose.) | |
635 | |
636 4. This saves the whole file (the Vim Tutor) under the name TEST. | |
637 To verify this, type :!dir or :!ls again to see your directory. | |
638 | |
639 NOTE: If you were to exit Vim and start it again with vim TEST , the file | |
640 would be an exact copy of the tutor when you saved it. | |
641 | |
14347 | 642 5. Now remove the file by typing (Windows): :!del TEST |
1624 | 643 or (Unix): :!rm TEST |
644 | |
645 | |
646 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
647 Lesson 5.3: SELECTING TEXT TO WRITE | |
648 | |
649 | |
650 ** To save part of the file, type v motion :w FILENAME ** | |
651 | |
652 1. Move the cursor to this line. | |
653 | |
654 2. Press v and move the cursor to the fifth item below. Notice that the | |
655 text is highlighted. | |
656 | |
657 3. Press the : character. At the bottom of the screen :'<,'> will appear. | |
658 | |
659 4. Type w TEST , where TEST is a filename that does not exist yet. Verify | |
2462
88e92762a53e
Update utf-8 version of tutor.
Bram Moolenaar <bram@vim.org>
parents:
1624
diff
changeset
|
660 that you see :'<,'>w TEST before you press <ENTER>. |
1624 | 661 |
3847 | 662 5. Vim will write the selected lines to the file TEST. Use :!dir or :!ls |
1624 | 663 to see it. Do not remove it yet! We will use it in the next lesson. |
664 | |
665 NOTE: Pressing v starts Visual selection. You can move the cursor around | |
666 to make the selection bigger or smaller. Then you can use an operator | |
667 to do something with the text. For example, d deletes the text. | |
668 | |
669 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
670 Lesson 5.4: RETRIEVING AND MERGING FILES | |
671 | |
672 | |
673 ** To insert the contents of a file, type :r FILENAME ** | |
674 | |
675 1. Place the cursor just above this line. | |
676 | |
14347 | 677 NOTE: After executing Step 2 you will see text from lesson 5.3. Then move |
1624 | 678 DOWN to see this lesson again. |
679 | |
680 2. Now retrieve your TEST file using the command :r TEST where TEST is | |
681 the name of the file you used. | |
682 The file you retrieve is placed below the cursor line. | |
683 | |
684 3. To verify that a file was retrieved, cursor back and notice that there | |
14347 | 685 are now two copies of lesson 5.3, the original and the file version. |
1624 | 686 |
687 NOTE: You can also read the output of an external command. For example, | |
688 :r !ls reads the output of the ls command and puts it below the | |
689 cursor. | |
690 | |
691 | |
692 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
693 Lesson 5 SUMMARY | |
694 | |
695 | |
696 1. :!command executes an external command. | |
697 | |
698 Some useful examples are: | |
14347 | 699 (Windows) (Unix) |
1624 | 700 :!dir :!ls - shows a directory listing. |
701 :!del FILENAME :!rm FILENAME - removes file FILENAME. | |
702 | |
703 2. :w FILENAME writes the current Vim file to disk with name FILENAME. | |
704 | |
705 3. v motion :w FILENAME saves the Visually selected lines in file | |
706 FILENAME. | |
707 | |
708 4. :r FILENAME retrieves disk file FILENAME and puts it below the | |
709 cursor position. | |
710 | |
711 5. :r !dir reads the output of the dir command and puts it below the | |
712 cursor position. | |
713 | |
714 | |
715 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
716 Lesson 6.1: THE OPEN COMMAND | |
717 | |
718 | |
719 ** Type o to open a line below the cursor and place you in Insert mode. ** | |
720 | |
14347 | 721 1. Move the cursor to the first line below marked --->. |
1624 | 722 |
723 2. Type the lowercase letter o to open up a line BELOW the cursor and place | |
724 you in Insert mode. | |
725 | |
726 3. Now type some text and press <ESC> to exit Insert mode. | |
727 | |
728 ---> After typing o the cursor is placed on the open line in Insert mode. | |
729 | |
730 4. To open up a line ABOVE the cursor, simply type a capital O , rather | |
731 than a lowercase o. Try this on the line below. | |
732 | |
733 ---> Open up a line above this by typing O while the cursor is on this line. | |
734 | |
735 | |
736 | |
737 | |
738 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
739 Lesson 6.2: THE APPEND COMMAND | |
740 | |
741 | |
742 ** Type a to insert text AFTER the cursor. ** | |
743 | |
14347 | 744 1. Move the cursor to the start of the first line below marked --->. |
745 | |
1624 | 746 2. Press e until the cursor is on the end of li . |
747 | |
748 3. Type an a (lowercase) to append text AFTER the cursor. | |
749 | |
750 4. Complete the word like the line below it. Press <ESC> to exit Insert | |
751 mode. | |
752 | |
753 5. Use e to move to the next incomplete word and repeat steps 3 and 4. | |
14347 | 754 |
1624 | 755 ---> This li will allow you to pract appendi text to a line. |
756 ---> This line will allow you to practice appending text to a line. | |
757 | |
758 NOTE: a, i and A all go to the same Insert mode, the only difference is where | |
759 the characters are inserted. | |
760 | |
761 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
762 Lesson 6.3: ANOTHER WAY TO REPLACE | |
763 | |
764 | |
765 ** Type a capital R to replace more than one character. ** | |
766 | |
767 1. Move the cursor to the first line below marked --->. Move the cursor to | |
768 the beginning of the first xxx . | |
769 | |
770 2. Now press R and type the number below it in the second line, so that it | |
771 replaces the xxx . | |
772 | |
773 3. Press <ESC> to leave Replace mode. Notice that the rest of the line | |
774 remains unmodified. | |
775 | |
776 4. Repeat the steps to replace the remaining xxx. | |
777 | |
778 ---> Adding 123 to xxx gives you xxx. | |
779 ---> Adding 123 to 456 gives you 579. | |
780 | |
781 NOTE: Replace mode is like Insert mode, but every typed character deletes an | |
782 existing character. | |
783 | |
784 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
785 Lesson 6.4: COPY AND PASTE TEXT | |
786 | |
787 | |
788 ** Use the y operator to copy text and p to paste it ** | |
789 | |
14347 | 790 1. Move to the line below marked ---> and place the cursor after "a)". |
791 | |
1624 | 792 2. Start Visual mode with v and move the cursor to just before "first". |
14347 | 793 |
1624 | 794 3. Type y to yank (copy) the highlighted text. |
795 | |
796 4. Move the cursor to the end of the next line: j$ | |
797 | |
798 5. Type p to put (paste) the text. Then type: a second <ESC> . | |
799 | |
800 6. Use Visual mode to select " item.", yank it with y , move to the end of | |
801 the next line with j$ and put the text there with p . | |
802 | |
803 ---> a) this is the first item. | |
804 b) | |
805 | |
22171 | 806 NOTE: You can also use y as an operator: yw yanks one word, |
22958 | 807 yy yanks the whole line, then p puts that line. |
1624 | 808 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
809 Lesson 6.5: SET OPTION | |
810 | |
811 | |
812 ** Set an option so a search or substitute ignores case ** | |
813 | |
14347 | 814 1. Search for 'ignore' by entering: /ignore <ENTER> |
1624 | 815 Repeat several times by pressing n . |
816 | |
817 2. Set the 'ic' (Ignore case) option by entering: :set ic | |
818 | |
819 3. Now search for 'ignore' again by pressing n | |
820 Notice that Ignore and IGNORE are now also found. | |
821 | |
822 4. Set the 'hlsearch' and 'incsearch' options: :set hls is | |
823 | |
824 5. Now type the search command again and see what happens: /ignore <ENTER> | |
825 | |
826 6. To disable ignoring case enter: :set noic | |
827 | |
14347 | 828 NOTE: To remove the highlighting of matches enter: :nohlsearch |
1624 | 829 NOTE: If you want to ignore case for just one search command, use \c |
14347 | 830 in the phrase: /ignore\c <ENTER> |
1624 | 831 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
832 Lesson 6 SUMMARY | |
833 | |
834 1. Type o to open a line BELOW the cursor and start Insert mode. | |
835 Type O to open a line ABOVE the cursor. | |
836 | |
837 2. Type a to insert text AFTER the cursor. | |
838 Type A to insert text after the end of the line. | |
839 | |
840 3. The e command moves to the end of a word. | |
841 | |
842 4. The y operator yanks (copies) text, p puts (pastes) it. | |
843 | |
844 5. Typing a capital R enters Replace mode until <ESC> is pressed. | |
845 | |
846 6. Typing ":set xxx" sets the option "xxx". Some options are: | |
847 'ic' 'ignorecase' ignore upper/lower case when searching | |
848 'is' 'incsearch' show partial matches for a search phrase | |
849 'hls' 'hlsearch' highlight all matching phrases | |
850 You can either use the long or the short option name. | |
851 | |
852 7. Prepend "no" to switch an option off: :set noic | |
853 | |
854 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
855 Lesson 7.1: GETTING HELP | |
856 | |
857 | |
858 ** Use the on-line help system ** | |
859 | |
860 Vim has a comprehensive on-line help system. To get started, try one of | |
861 these three: | |
862 - press the <HELP> key (if you have one) | |
863 - press the <F1> key (if you have one) | |
864 - type :help <ENTER> | |
865 | |
866 Read the text in the help window to find out how the help works. | |
867 Type CTRL-W CTRL-W to jump from one window to another. | |
868 Type :q <ENTER> to close the help window. | |
869 | |
870 You can find help on just about any subject, by giving an argument to the | |
871 ":help" command. Try these (don't forget pressing <ENTER>): | |
872 | |
873 :help w | |
874 :help c_CTRL-D | |
875 :help insert-index | |
876 :help user-manual | |
877 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
878 Lesson 7.2: CREATE A STARTUP SCRIPT | |
879 | |
880 | |
881 ** Enable Vim features ** | |
882 | |
883 Vim has many more features than Vi, but most of them are disabled by | |
24751 | 884 default. To start using more features you should create a "vimrc" file. |
1624 | 885 |
886 1. Start editing the "vimrc" file. This depends on your system: | |
887 :e ~/.vimrc for Unix | |
24751 | 888 :e ~/_vimrc for Windows |
1624 | 889 |
890 2. Now read the example "vimrc" file contents: | |
891 :r $VIMRUNTIME/vimrc_example.vim | |
892 | |
893 3. Write the file with: | |
894 :w | |
895 | |
896 The next time you start Vim it will use syntax highlighting. | |
897 You can add all your preferred settings to this "vimrc" file. | |
898 For more information type :help vimrc-intro | |
899 | |
900 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
901 Lesson 7.3: COMPLETION | |
902 | |
903 | |
904 ** Command line completion with CTRL-D and <TAB> ** | |
905 | |
906 1. Make sure Vim is not in compatible mode: :set nocp | |
907 | |
908 2. Look what files exist in the directory: :!ls or :!dir | |
909 | |
910 3. Type the start of a command: :e | |
911 | |
912 4. Press CTRL-D and Vim will show a list of commands that start with "e". | |
913 | |
14347 | 914 5. Type d<TAB> and Vim will complete the command name to ":edit". |
1624 | 915 |
916 6. Now add a space and the start of an existing file name: :edit FIL | |
917 | |
918 7. Press <TAB>. Vim will complete the name (if it is unique). | |
919 | |
920 NOTE: Completion works for many commands. Just try pressing CTRL-D and | |
921 <TAB>. It is especially useful for :help . | |
922 | |
923 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
924 Lesson 7 SUMMARY | |
925 | |
926 | |
14347 | 927 1. Type :help or press <F1> or <HELP> to open a help window. |
1624 | 928 |
929 2. Type :help cmd to find help on cmd . | |
930 | |
14347 | 931 3. Type CTRL-W CTRL-W to jump to another window. |
1624 | 932 |
14347 | 933 4. Type :q to close the help window. |
1624 | 934 |
935 5. Create a vimrc startup script to keep your preferred settings. | |
936 | |
937 6. When typing a : command, press CTRL-D to see possible completions. | |
938 Press <TAB> to use one completion. | |
939 | |
940 | |
941 | |
942 | |
943 | |
944 | |
945 | |
946 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
947 | |
948 This concludes the Vim Tutor. It was intended to give a brief overview of | |
949 the Vim editor, just enough to allow you to use the editor fairly easily. | |
950 It is far from complete as Vim has many many more commands. Read the user | |
951 manual next: ":help user-manual". | |
952 | |
953 For further reading and studying, this book is recommended: | |
954 Vim - Vi Improved - by Steve Oualline | |
955 Publisher: New Riders | |
956 The first book completely dedicated to Vim. Especially useful for beginners. | |
957 There are many examples and pictures. | |
958 See http://iccf-holland.org/click5.html | |
959 | |
960 This book is older and more about Vi than Vim, but also recommended: | |
961 Learning the Vi Editor - by Linda Lamb | |
962 Publisher: O'Reilly & Associates Inc. | |
963 It is a good book to get to know almost anything you want to do with Vi. | |
964 The sixth edition also includes information on Vim. | |
965 | |
966 This tutorial was written by Michael C. Pierce and Robert K. Ware, | |
967 Colorado School of Mines using ideas supplied by Charles Smith, | |
968 Colorado State University. E-mail: bware@mines.colorado.edu. | |
969 | |
970 Modified for Vim by Bram Moolenaar. | |
971 | |
972 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |