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