Mercurial > vim
annotate runtime/doc/usr_02.txt @ 6685:fd495ad521dc v7.4.667
updated for version 7.4.667
Problem: 'colorcolumn' isn't drawn in a closed fold while 'cursorcolumn'
is. (Carlos Pita)
Solution: Make it consistent. (Christian Brabandt)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 20 Mar 2015 17:16:27 +0100 |
parents | 359743c1f59a |
children | fbc1131f0ba5 |
rev | line source |
---|---|
5294 | 1 *usr_02.txt* For Vim version 7.4. Last change: 2010 Jul 20 |
7 | 2 |
3 VIM USER MANUAL - by Bram Moolenaar | |
4 | |
5 The first steps in Vim | |
6 | |
7 | |
8 This chapter provides just enough information to edit a file with Vim. Not | |
9 well or fast, but you can edit. Take some time to practice with these | |
10 commands, they form the base for what follows. | |
11 | |
12 |02.1| Running Vim for the First Time | |
13 |02.2| Inserting text | |
14 |02.3| Moving around | |
15 |02.4| Deleting characters | |
16 |02.5| Undo and Redo | |
17 |02.6| Other editing commands | |
18 |02.7| Getting out | |
19 |02.8| Finding help | |
20 | |
21 Next chapter: |usr_03.txt| Moving around | |
22 Previous chapter: |usr_01.txt| About the manuals | |
23 Table of contents: |usr_toc.txt| | |
24 | |
25 ============================================================================== | |
26 *02.1* Running Vim for the First Time | |
27 | |
28 To start Vim, enter this command: > | |
29 | |
30 gvim file.txt | |
31 | |
32 In UNIX you can type this at any command prompt. If you are running Microsoft | |
33 Windows, open an MS-DOS prompt window and enter the command. | |
34 In either case, Vim starts editing a file called file.txt. Because this | |
35 is a new file, you get a blank window. This is what your screen will look | |
36 like: | |
37 | |
38 +---------------------------------------+ | |
39 |# | | |
40 |~ | | |
41 |~ | | |
42 |~ | | |
43 |~ | | |
44 |"file.txt" [New file] | | |
45 +---------------------------------------+ | |
46 ('#" is the cursor position.) | |
47 | |
48 The tilde (~) lines indicate lines not in the file. In other words, when Vim | |
49 runs out of file to display, it displays tilde lines. At the bottom of the | |
50 screen, a message line indicates the file is named file.txt and shows that you | |
51 are creating a new file. The message information is temporary and other | |
52 information overwrites it. | |
53 | |
54 | |
55 THE VIM COMMAND | |
56 | |
57 The gvim command causes the editor to create a new window for editing. If you | |
58 use this command: > | |
59 | |
60 vim file.txt | |
61 | |
62 the editing occurs inside your command window. In other words, if you are | |
63 running inside an xterm, the editor uses your xterm window. If you are using | |
64 an MS-DOS command prompt window under Microsoft Windows, the editing occurs | |
65 inside this window. The text in the window will look the same for both | |
66 versions, but with gvim you have extra features, like a menu bar. More about | |
67 that later. | |
68 | |
69 ============================================================================== | |
70 *02.2* Inserting text | |
71 | |
72 The Vim editor is a modal editor. That means that the editor behaves | |
73 differently, depending on which mode you are in. The two basic modes are | |
74 called Normal mode and Insert mode. In Normal mode the characters you type | |
75 are commands. In Insert mode the characters are inserted as text. | |
76 Since you have just started Vim it will be in Normal mode. To start Insert | |
77 mode you type the "i" command (i for Insert). Then you can enter | |
78 the text. It will be inserted into the file. Do not worry if you make | |
79 mistakes; you can correct them later. To enter the following programmer's | |
80 limerick, this is what you type: > | |
81 | |
82 iA very intelligent turtle | |
83 Found programming UNIX a hurdle | |
84 | |
85 After typing "turtle" you press the <Enter> key to start a new line. Finally | |
86 you press the <Esc> key to stop Insert mode and go back to Normal mode. You | |
87 now have two lines of text in your Vim window: | |
88 | |
89 +---------------------------------------+ | |
90 |A very intelligent turtle | | |
91 |Found programming UNIX a hurdle | | |
92 |~ | | |
93 |~ | | |
94 | | | |
95 +---------------------------------------+ | |
96 | |
97 | |
98 WHAT IS THE MODE? | |
99 | |
100 To be able to see what mode you are in, type this command: > | |
101 | |
102 :set showmode | |
103 | |
104 You will notice that when typing the colon Vim moves the cursor to the last | |
105 line of the window. That's where you type colon commands (commands that start | |
106 with a colon). Finish this command by pressing the <Enter> key (all commands | |
107 that start with a colon are finished this way). | |
108 Now, if you type the "i" command Vim will display --INSERT-- at the bottom | |
109 of the window. This indicates you are in Insert mode. | |
110 | |
111 +---------------------------------------+ | |
112 |A very intelligent turtle | | |
113 |Found programming UNIX a hurdle | | |
114 |~ | | |
115 |~ | | |
116 |-- INSERT -- | | |
117 +---------------------------------------+ | |
118 | |
119 If you press <Esc> to go back to Normal mode the last line will be made blank. | |
120 | |
121 | |
122 GETTING OUT OF TROUBLE | |
123 | |
124 One of the problems for Vim novices is mode confusion, which is caused by | |
125 forgetting which mode you are in or by accidentally typing a command that | |
126 switches modes. To get back to Normal mode, no matter what mode you are in, | |
127 press the <Esc> key. Sometimes you have to press it twice. If Vim beeps back | |
128 at you, you already are in Normal mode. | |
129 | |
130 ============================================================================== | |
131 *02.3* Moving around | |
132 | |
133 After you return to Normal mode, you can move around by using these keys: | |
134 | |
135 h left *hjkl* | |
136 j down | |
137 k up | |
138 l right | |
139 | |
140 At first, it may appear that these commands were chosen at random. After all, | |
141 who ever heard of using l for right? But actually, there is a very good | |
142 reason for these choices: Moving the cursor is the most common thing you do in | |
143 an editor, and these keys are on the home row of your right hand. In other | |
144 words, these commands are placed where you can type them the fastest | |
145 (especially when you type with ten fingers). | |
146 | |
147 Note: | |
148 You can also move the cursor by using the arrow keys. If you do, | |
149 however, you greatly slow down your editing because to press the arrow | |
150 keys, you must move your hand from the text keys to the arrow keys. | |
151 Considering that you might be doing it hundreds of times an hour, this | |
152 can take a significant amount of time. | |
153 Also, there are keyboards which do not have arrow keys, or which | |
154 locate them in unusual places; therefore, knowing the use of the hjkl | |
155 keys helps in those situations. | |
156 | |
157 One way to remember these commands is that h is on the left, l is on the | |
158 right and j points down. In a picture: > | |
159 | |
160 k | |
161 h l | |
162 j | |
163 | |
164 The best way to learn these commands is by using them. Use the "i" command to | |
165 insert some more lines of text. Then use the hjkl keys to move around and | |
166 insert a word somewhere. Don't forget to press <Esc> to go back to Normal | |
167 mode. The |vimtutor| is also a nice way to learn by doing. | |
168 | |
169 For Japanese users, Hiroshi Iwatani suggested using this: | |
170 | |
171 Komsomolsk | |
172 ^ | |
173 | | |
174 Huan Ho <--- ---> Los Angeles | |
175 (Yellow river) | | |
176 v | |
177 Java (the island, not the programming language) | |
178 | |
179 ============================================================================== | |
180 *02.4* Deleting characters | |
181 | |
182 To delete a character, move the cursor over it and type "x". (This is a | |
183 throwback to the old days of the typewriter, when you deleted things by typing | |
184 xxxx over them.) Move the cursor to the beginning of the first line, for | |
185 example, and type xxxxxxx (seven x's) to delete "A very ". The result should | |
186 look like this: | |
187 | |
188 +---------------------------------------+ | |
189 |intelligent turtle | | |
190 |Found programming UNIX a hurdle | | |
191 |~ | | |
192 |~ | | |
193 | | | |
194 +---------------------------------------+ | |
195 | |
196 Now you can insert new text, for example by typing: > | |
197 | |
198 iA young <Esc> | |
199 | |
200 This begins an insert (the i), inserts the words "A young", and then exits | |
201 insert mode (the final <Esc>). The result: | |
202 | |
203 +---------------------------------------+ | |
204 |A young intelligent turtle | | |
205 |Found programming UNIX a hurdle | | |
206 |~ | | |
207 |~ | | |
208 | | | |
209 +---------------------------------------+ | |
210 | |
211 | |
212 DELETING A LINE | |
213 | |
214 To delete a whole line use the "dd" command. The following line will | |
215 then move up to fill the gap: | |
216 | |
217 +---------------------------------------+ | |
218 |Found programming UNIX a hurdle | | |
219 |~ | | |
220 |~ | | |
221 |~ | | |
222 | | | |
223 +---------------------------------------+ | |
224 | |
225 | |
226 DELETING A LINE BREAK | |
227 | |
228 In Vim you can join two lines together, which means that the line break | |
229 between them is deleted. The "J" command does this. | |
230 Take these two lines: | |
231 | |
232 A young intelligent ~ | |
233 turtle ~ | |
234 | |
235 Move the cursor to the first line and press "J": | |
236 | |
237 A young intelligent turtle ~ | |
238 | |
239 ============================================================================== | |
240 *02.5* Undo and Redo | |
241 | |
242 Suppose you delete too much. Well, you can type it in again, but an easier | |
243 way exists. The "u" command undoes the last edit. Take a look at this in | |
244 action: After using "dd" to delete the first line, "u" brings it back. | |
245 Another one: Move the cursor to the A in the first line: | |
246 | |
247 A young intelligent turtle ~ | |
248 | |
249 Now type xxxxxxx to delete "A young". The result is as follows: | |
250 | |
251 intelligent turtle ~ | |
252 | |
253 Type "u" to undo the last delete. That delete removed the g, so the undo | |
254 restores the character. | |
255 | |
256 g intelligent turtle ~ | |
257 | |
258 The next u command restores the next-to-last character deleted: | |
259 | |
260 ng intelligent turtle ~ | |
261 | |
262 The next u command gives you the u, and so on: | |
263 | |
264 ung intelligent turtle ~ | |
265 oung intelligent turtle ~ | |
266 young intelligent turtle ~ | |
267 young intelligent turtle ~ | |
268 A young intelligent turtle ~ | |
269 | |
270 Note: | |
271 If you type "u" twice, and the result is that you get the same text | |
272 back, you have Vim configured to work Vi compatible. Look here to fix | |
273 this: |not-compatible|. | |
274 This text assumes you work "The Vim Way". You might prefer to use | |
275 the good old Vi way, but you will have to watch out for small | |
276 differences in the text then. | |
277 | |
278 | |
279 REDO | |
280 | |
281 If you undo too many times, you can press CTRL-R (redo) to reverse the | |
282 preceding command. In other words, it undoes the undo. To see this in | |
283 action, press CTRL-R twice. The character A and the space after it disappear: | |
284 | |
285 young intelligent turtle ~ | |
286 | |
287 There's a special version of the undo command, the "U" (undo line) command. | |
288 The undo line command undoes all the changes made on the last line that was | |
289 edited. Typing this command twice cancels the preceding "U". | |
290 | |
291 A very intelligent turtle ~ | |
292 xxxx Delete very | |
293 | |
294 A intelligent turtle ~ | |
295 xxxxxx Delete turtle | |
296 | |
297 A intelligent ~ | |
298 Restore line with "U" | |
299 A very intelligent turtle ~ | |
300 Undo "U" with "u" | |
301 A intelligent ~ | |
302 | |
303 The "U" command is a change by itself, which the "u" command undoes and CTRL-R | |
304 redoes. This might be a bit confusing. Don't worry, with "u" and CTRL-R you | |
2281
e41433ea71df
Added ":earlier 1f" and ":later 1f".
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
305 can go to any of the situations you had. More about that in section |32.2|. |
7 | 306 |
307 ============================================================================== | |
308 *02.6* Other editing commands | |
309 | |
310 Vim has a large number of commands to change the text. See |Q_in| and below. | |
311 Here are a few often used ones. | |
312 | |
313 | |
314 APPENDING | |
315 | |
316 The "i" command inserts a character before the character under the cursor. | |
317 That works fine; but what happens if you want to add stuff to the end of the | |
318 line? For that you need to insert text after the cursor. This is done with | |
319 the "a" (append) command. | |
320 For example, to change the line | |
321 | |
322 and that's not saying much for the turtle. ~ | |
323 to | |
324 and that's not saying much for the turtle!!! ~ | |
325 | |
326 move the cursor over to the dot at the end of the line. Then type "x" to | |
327 delete the period. The cursor is now positioned at the end of the line on the | |
328 e in turtle. Now type > | |
329 | |
330 a!!!<Esc> | |
331 | |
332 to append three exclamation points after the e in turtle: | |
333 | |
334 and that's not saying much for the turtle!!! ~ | |
335 | |
336 | |
337 OPENING UP A NEW LINE | |
338 | |
339 The "o" command creates a new, empty line below the cursor and puts Vim in | |
340 Insert mode. Then you can type the text for the new line. | |
341 Suppose the cursor is somewhere in the first of these two lines: | |
342 | |
343 A very intelligent turtle ~ | |
344 Found programming UNIX a hurdle ~ | |
345 | |
346 If you now use the "o" command and type new text: > | |
347 | |
348 oThat liked using Vim<Esc> | |
349 | |
350 The result is: | |
351 | |
352 A very intelligent turtle ~ | |
353 That liked using Vim ~ | |
354 Found programming UNIX a hurdle ~ | |
355 | |
356 The "O" command (uppercase) opens a line above the cursor. | |
357 | |
358 | |
359 USING A COUNT | |
360 | |
361 Suppose you want to move up nine lines. You can type "kkkkkkkkk" or you can | |
362 enter the command "9k". In fact, you can precede many commands with a number. | |
363 Earlier in this chapter, for instance, you added three exclamation points to | |
364 the end of a line by typing "a!!!<Esc>". Another way to do this is to use the | |
365 command "3a!<Esc>". The count of 3 tells the command that follows to triple | |
366 its effect. Similarly, to delete three characters, use the command "3x". The | |
367 count always comes before the command it applies to. | |
368 | |
369 ============================================================================== | |
370 *02.7* Getting out | |
371 | |
372 To exit, use the "ZZ" command. This command writes the file and exits. | |
373 | |
374 Note: | |
375 Unlike many other editors, Vim does not automatically make a backup | |
376 file. If you type "ZZ", your changes are committed and there's no | |
377 turning back. You can configure the Vim editor to produce backup | |
378 files, see |07.4|. | |
379 | |
380 | |
381 DISCARDING CHANGES | |
382 | |
383 Sometimes you will make a sequence of changes and suddenly realize you were | |
384 better off before you started. Not to worry; Vim has a | |
385 quit-and-throw-things-away command. It is: > | |
386 | |
387 :q! | |
388 | |
389 Don't forget to press <Enter> to finish the command. | |
390 | |
391 For those of you interested in the details, the three parts of this command | |
392 are the colon (:), which enters Command-line mode; the q command, which tells | |
393 the editor to quit; and the override command modifier (!). | |
394 The override command modifier is needed because Vim is reluctant to throw | |
395 away changes. If you were to just type ":q", Vim would display an error | |
396 message and refuse to exit: | |
397 | |
398 E37: No write since last change (use ! to override) ~ | |
399 | |
400 By specifying the override, you are in effect telling Vim, "I know that what | |
401 I'm doing looks stupid, but I'm a big boy and really want to do this." | |
402 | |
403 If you want to continue editing with Vim: The ":e!" command reloads the | |
404 original version of the file. | |
405 | |
406 ============================================================================== | |
407 *02.8* Finding help | |
408 | |
409 Everything you always wanted to know can be found in the Vim help files. | |
410 Don't be afraid to ask! | |
411 To get generic help use this command: > | |
412 | |
413 :help | |
414 | |
415 You could also use the first function key <F1>. If your keyboard has a <Help> | |
416 key it might work as well. | |
417 If you don't supply a subject, ":help" displays the general help window. | |
418 The creators of Vim did something very clever (or very lazy) with the help | |
419 system: They made the help window a normal editing window. You can use all | |
420 the normal Vim commands to move through the help information. Therefore h, j, | |
421 k, and l move left, down, up and right. | |
422 To get out of the help window, use the same command you use to get out of | |
423 the editor: "ZZ". This will only close the help window, not exit Vim. | |
424 | |
425 As you read the help text, you will notice some text enclosed in vertical bars | |
426 (for example, |help|). This indicates a hyperlink. If you position the | |
427 cursor anywhere between the bars and press CTRL-] (jump to tag), the help | |
236 | 428 system takes you to the indicated subject. (For reasons not discussed here, |
7 | 429 the Vim terminology for a hyperlink is tag. So CTRL-] jumps to the location |
430 of the tag given by the word under the cursor.) | |
431 After a few jumps, you might want to go back. CTRL-T (pop tag) takes you | |
432 back to the preceding position. CTRL-O (jump to older position) also works | |
433 nicely here. | |
434 At the top of the help screen, there is the notation *help.txt*. This name | |
435 between "*" characters is used by the help system to define a tag (hyperlink | |
436 destination). | |
437 See |29.1| for details about using tags. | |
438 | |
439 To get help on a given subject, use the following command: > | |
440 | |
441 :help {subject} | |
442 | |
443 To get help on the "x" command, for example, enter the following: > | |
444 | |
445 :help x | |
446 | |
447 To find out how to delete text, use this command: > | |
448 | |
449 :help deleting | |
450 | |
451 To get a complete index of all Vim commands, use the following command: > | |
452 | |
453 :help index | |
454 | |
455 When you need to get help for a control character command (for example, | |
456 CTRL-A), you need to spell it with the prefix "CTRL-". > | |
457 | |
458 :help CTRL-A | |
459 | |
460 The Vim editor has many different modes. By default, the help system displays | |
461 the normal-mode commands. For example, the following command displays help | |
462 for the normal-mode CTRL-H command: > | |
463 | |
464 :help CTRL-H | |
465 | |
466 To identify other modes, use a mode prefix. If you want the help for the | |
467 insert-mode version of a command, use "i_". For CTRL-H this gives you the | |
468 following command: > | |
469 | |
470 :help i_CTRL-H | |
471 | |
472 When you start the Vim editor, you can use several command-line arguments. | |
473 These all begin with a dash (-). To find what the -t argument does, for | |
474 example, use the command: > | |
475 | |
476 :help -t | |
477 | |
478 The Vim editor has a number of options that enable you to configure and | |
479 customize the editor. If you want help for an option, you need to enclose it | |
480 in single quotation marks. To find out what the 'number' option does, for | |
481 example, use the following command: > | |
482 | |
483 :help 'number' | |
484 | |
485 The table with all mode prefixes can be found here: |help-context|. | |
486 | |
236 | 487 Special keys are enclosed in angle brackets. To find help on the up-arrow key |
7 | 488 in Insert mode, for instance, use this command: > |
489 | |
490 :help i_<Up> | |
491 | |
492 If you see an error message that you don't understand, for example: | |
493 | |
494 E37: No write since last change (use ! to override) ~ | |
495 | |
496 You can use the error ID at the start to find help about it: > | |
497 | |
498 :help E37 | |
499 | |
1121 | 500 |
501 Summary: *help-summary* > | |
502 :help | |
503 < Gives you very general help. Scroll down to see a list of all | |
504 helpfiles, including those added locally (i.e. not distributed | |
505 with Vim). > | |
506 :help user-toc.txt | |
507 < Table of contents of the User Manual. > | |
508 :help :subject | |
509 < Ex-command "subject", for instance the following: > | |
510 :help :help | |
511 < Help on getting help. > | |
512 :help abc | |
513 < normal-mode command "abc". > | |
514 :help CTRL-B | |
515 < Control key <C-B> in Normal mode. > | |
516 :help i_abc | |
517 :help i_CTRL-B | |
518 < The same in Insert mode. > | |
519 :help v_abc | |
520 :help v_CTRL-B | |
521 < The same in Visual mode. > | |
522 :help c_abc | |
523 :help c_CTRL-B | |
524 < The same in Command-line mode. > | |
525 :help 'subject' | |
526 < Option 'subject'. > | |
527 :help subject() | |
528 < Function "subject". > | |
529 :help -subject | |
530 < Command-line option "-subject". > | |
531 :help +subject | |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2561
diff
changeset
|
532 < Compile-time feature "+subject". > |
1121 | 533 :help EventName |
534 < Autocommand event "EventName". > | |
535 :help digraphs.txt | |
536 < The top of the helpfile "digraph.txt". | |
537 Similarly for any other helpfile. > | |
538 :help pattern<Tab> | |
539 < Find a help tag starting with "pattern". Repeat <Tab> for | |
540 others. > | |
541 :help pattern<Ctrl-D> | |
542 < See all possible help tag matches "pattern" at once. > | |
543 :helpgrep pattern | |
544 < Search the whole text of all help files for pattern "pattern". | |
545 Jumps to the first match. Jump to other matches with: > | |
546 :cn | |
547 < next match > | |
548 :cprev | |
549 :cN | |
550 < previous match > | |
551 :cfirst | |
552 :clast | |
553 < first or last match > | |
554 :copen | |
555 :cclose | |
556 < open/close the quickfix window; press <Enter> to jump | |
557 to the item under the cursor | |
558 | |
559 | |
7 | 560 ============================================================================== |
561 | |
562 Next chapter: |usr_03.txt| Moving around | |
563 | |
564 Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: |