/[gentoo]/xml/htdocs/doc/en/vi-guide.xml
Gentoo

Diff of /xml/htdocs/doc/en/vi-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.9 Revision 1.10
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/vi-guide.xml,v 1.9 2003/11/15 00:35:19 neysx Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/vi-guide.xml,v 1.10 2003/12/30 15:23:55 aaby Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link = "/doc/en/vi-guide.xml"> 5<guide link = "/doc/en/vi-guide.xml">
6<title>Learning vi -- the "cheatsheet" technique</title> 6<title>Learning vi -- the "cheatsheet" technique</title>
7<author title="Author">
7<author title="Author"><mail link="drobbins@gentoo.org">Daniel Robbins</mail></author> 8 <mail link="drobbins@gentoo.org">Daniel Robbins</mail>
9</author>
10<author title="Author">
8<author title="Author"><mail link="stocke2@gentoo.org">Eric Stockbridge</mail></author> 11 <mail link="stocke2@gentoo.org">Eric Stockbridge</mail>
9<author title="Editor"><mail link="bennyc@gentoo.org">Benny Chuang</mail></author> 12</author>
10<abstract>This guide will teach you how to use vi, using a cheat sheet method to accelerate the learning process. This will be the first guide for vi, catering to beginners.</abstract> 13<author title="Editor">
14 <mail link="bennyc@gentoo.org">Benny Chuang</mail>
15</author>
16
17<abstract>
18This guide will teach you how to use vi, using a cheat sheet method to
19accelerate the learning process. This will be the first guide for vi,
20catering to beginners.
21</abstract>
22
11<version>1.1.2</version> 23<version>1.1.3</version>
12<date>October 4, 2003</date> 24<date>December 30, 2003</date>
13 25
14<chapter> 26<chapter>
15<title>Getting Started</title> 27<title>Getting Started</title>
16<section> 28<section>
17<title>Introduction</title> 29<title>Introduction</title>
18<body> 30<body>
31
19<p> 32<p>
20This tutorial will show you how to use vi, a powerful visual editor. Using a 33This tutorial will show you how to use vi, a powerful visual editor.
21special accelerated "cheat sheet" method, this tutorial is designed to make you 34Using a special accelerated "cheat sheet" method, this tutorial is
22a proficient vi user without requiring a huge time commitment. In this vi 35designed to make you a proficient vi user without requiring a huge
23tutorial, you'll learn how to move around, edit text, use insert mode, copy and 36time commitment. In this vi tutorial, you'll learn how to move
37around, edit text, use insert mode, copy and paste text, and use
24paste text, and use important vim extensions like visual mode and multi-window 38important vim extensions like visual mode and multi-window editing.
25editing.
26</p>
27<p> 39</p>
40
41<p>
28If you either don't know or aren't comfortable using vi, then you owe it to yourself 42If you either don't know or aren't comfortable using vi, then you owe
29to take this tutorial and get up to speed with one of the most popular and powerful 43it to yourself to take this tutorial and get up to speed with one of
30Linux/UNIX visual editing programs. 44the most popular and powerful Linux/UNIX visual editing programs.
31</p> 45</p>
32 46
33</body> 47</body>
34</section> 48</section>
35<section> 49<section>
36<title>About the guide</title> 50<title>About the guide</title>
37<title>Learning vi -- accelerated</title>
38<body> 51<body>
39<p> 52
40There's one thing in particular that makes it difficult to learn vi -- vi has lots of commands.
41In order to use vi effectively, you need to memorize quite a few. This can take a long time, and
42one of the goals of this tutorial is not to take up a lot of your time. So, initially, we have
43a challenge -- how exactly do I help you to memorize lots of commands in a short period of time?
44</p> 53<p>
54There's one thing in particular that makes it difficult to learn vi --
55vi has lots of commands. In order to use vi effectively, you need to
56memorize quite a few. This can take a long time, and one of the goals
57of this tutorial is not to take up a lot of your time. So, initially,
58we have a challenge -- how exactly do I help you to memorize lots of
59commands in a short period of time?
45<p> 60</p>
46To tackle this challenge, as we proceed through this tutorial, we're going to gradually put together 61
47a vi "cheat sheet". This sheet will contain all the important vi commands. After you've completed
48this tutorial, you'll be able to refer to this cheat sheet if you forget a particular command.
49Over time, as you memorize commands, you'll gradually become less and less dependent on the cheat sheet.
50By using the cheat-sheet technique, you'll be able to learn how to use vi faster than ever possible
51before!
52</p> 62<p>
63To tackle this challenge, as we proceed through this tutorial, we're
64going to gradually put together a vi "cheat sheet". This sheet will
65contain all the important vi commands. After you've completed this
66tutorial, you'll be able to refer to this cheat sheet if you forget a
67particular command. Over time, as you memorize commands, you'll
68gradually become less and less dependent on the cheat sheet. By using
69the cheat-sheet technique, you'll be able to learn how to use vi
70faster than ever possible before!
71</p>
72
53</body> 73</body>
54</section> 74</section>
55<section> 75<section>
56<title>The learning process</title> 76<title>The learning process</title>
57<body> 77<body>
58 78
79<p>
59<p>In this guide, I'm going to use several techniques to help you learn. 80In this guide, I'm going to use several techniques to help you
60First, I'm going to describe how a particular command works, as you'd expect. Then, I'm going 81learn. First, I'm going to describe how a particular command works,
82as you'd expect. Then, I'm going to ask you to try to use the command
61to ask you to try to use the command in vi (for practice), and then I'm going to ask you to transcribe 83in vi (for practice), and then I'm going to ask you to transcribe the
62the command to the cheat sheet (for later reference.) If you want to learn vi quickly, it's important 84command to the cheat sheet (for later reference.) If you want to
63that you perform all these steps. Trying out a command in vi and transcribing 85learn vi quickly, it's important that you perform all these steps.
86Trying out a command in vi and transcribing the command onto your
64the command onto your cheat sheet will help you to memorize the command. 87cheat sheet will help you to memorize the command.
65</p> 88</p>
89
66</body> 90</body>
67</section> 91</section>
68<section> 92<section>
69<title>Introducing vim</title> 93<title>Introducing vim</title>
70<body> 94<body>
71 95
96<p>
72<p>There are many versions of vi, and I'm going to be showing you how to use a 97There are many versions of vi, and I'm going to be showing you how to
73version of vi called "vim". vim is very popular and has a number of extensions 98use a version of vi called "vim". vim is very popular and has a
74that make vi a lot nicer (whenever I demonstrate a vim-specific command, I'll 99number of extensions that make vi a lot nicer (whenever I demonstrate
75make a note of it.) If you need to install vim, you can get it from <uri link="http://www.vim.org/">www.vim.org</uri>. 100a vim-specific command, I'll make a note of it.) If you need to
76In addition to an enhanced 101install vim, you can get it from <uri
102link="http://www.vim.org/">www.vim.org</uri>. In addition to an
77command-line vi, vim also comes with gvim, a nice graphical editor which can be 103enhanced command-line vi, vim also comes with gvim, a nice graphical
78configured to use the excellent GTK+ gui library. Here's a gvim screenshot 104editor which can be configured to use the excellent GTK+ gui library.
79from my system:</p> 105Here's a gvim screenshot from my system:
106</p>
80 107
81<figure link="http://www.ibiblio.org/web-gentoo/images/vishot.png" short="screenshot" caption="VIM screenshot"/> 108<figure link="http://www.ibiblio.org/web-gentoo/images/vishot.png"
109short="screenshot" caption="VIM screenshot"/>
82 110
111<p>
83<p>If you're a vi newbie, try to get gvim running on your system. Using vi 112If you're a vi newbie, try to get gvim running on your system. Using
84from a gui can make things a bit easier for beginners.</p> 113vi from a gui can make things a bit easier for beginners.
114</p>
85 115
86</body> 116</body>
87</section> 117</section>
88</chapter> 118</chapter>
119
89<chapter> 120<chapter>
90<title>First Steps</title> 121<title>First Steps</title>
91<section> 122<section>
92<title>Pick a file</title> 123<title>Pick a file</title>
93<body> 124<body>
125
126<p>
94<p>Before using vi to edit files, you need to know how to use vi to move around in 127Before using vi to edit files, you need to know how to use vi to move
95a file. vi has a lot of movement commands, and we're going to take a look at many 128around in a file. vi has a lot of movement commands, and we're going
96of them. For this part of the tutorial, find an unimportant text file and load it into 129to take a look at many of them. For this part of the tutorial, find
97vi by typing:</p> 130an unimportant text file and load it into vi by typing:
98<pre> 131</p>
132
133<pre caption="Loading a file into vi">
99$ vi myfile.txt 134$ vi myfile.txt
100</pre><p> 135</pre>
136
137<p>
101If you have vim installed, type "vim myfile.txt". If you'd prefer to use gvim, type 138If you have vim installed, type "vim myfile.txt". If you'd prefer to
102"gvim myfile.txt". myfile.txt should be the name of a text file on your system. 139use gvim, type "gvim myfile.txt". myfile.txt should be the name of a
140text file on your system.
103</p> 141</p>
104</body>
105</section>
106 142
143</body>
144</section>
107<section> 145<section>
108<title>Inside vi</title> 146<title>Inside vi</title>
109<body> 147<body>
110 148
149<p>
111<p>After vi loads, you should see a part of the text file you loaded on your screen. 150After vi loads, you should see a part of the text file you loaded
112Congratulations -- you're in vi! Unlike many editors, when vi starts up, it is in 151on your screen. Congratulations -- you're in vi! Unlike many
113a special mode called "command mode". This means that if you press "l" on the keyboard, 152editors, when vi starts up, it is in a special mode called "command
153mode". This means that if you press "l" on the keyboard, instead of
114instead of inserting an "l" into the file at the current cursor position, the cursor 154inserting an "l" into the file at the current cursor position, the
115will move one character to the right instead. In command mode, the 155cursor will move one character to the right instead. In command mode,
116characters on your keyboard are used to send commands to vi rather than insert literal 156the characters on your keyboard are used to send commands to vi rather
117characters into the text. One of the most essential types of commands are movement commands; 157than insert literal characters into the text. One of the most
118let's take a look at some.</p> 158essential types of commands are movement commands; let's take a look
159at some.
160</p>
119 161
120</body> 162</body>
121</section> 163</section>
122</chapter> 164</chapter>
165
123<chapter> 166<chapter>
124<title>Moving around</title> 167<title>Moving around</title>
125<section> 168<section>
126<title>Moving in vi, part 1</title> 169<title>Moving in vi, part 1</title>
127<body> 170<body>
128 171
172<p>
129 <p>When in command mode, you can use the <c>h</c>,<c>j</c>,<c>k</c> and <c>l</c> keys to move the cursor left, 173When in command mode, you can use the <c>h</c>,<c>j</c>,<c>k</c> and
174<c>l</c> keys to move the cursor left, down, up and right
130down, up and right respectively. If you're using a modern version of vi, you can also 175respectively. If you're using a modern version of vi, you can also
131use the arrow keys for this purpose. The <c>h</c>,<c>j</c>,<c>k</c> and <c>l</c> keys are handy because once 176use the arrow keys for this purpose. The <c>h</c>,<c>j</c>,<c>k</c>
132you're comfortable with them, you'll be able to move around in the file without moving 177and <c>l</c> keys are handy because once you're comfortable with them,
133your fingers from the home keyboard row. Try using <c>h</c>,<c>j</c>,<c>k</c> and <c>l</c> (and the arrow keys) to move 178you'll be able to move around in the file without moving your fingers
179from the home keyboard row. Try using <c>h</c>,<c>j</c>,<c>k</c> and
180<c>l</c> (and the arrow keys) to move around in the text file. Try
134around in the text file. Try using <c>h</c> until you get to the beginning of a line. Notice that 181using <c>h</c> until you get to the beginning of a line. Notice that
135vi doesn't allow you to "wrap around" to the previous line by hitting <c>h</c> while you're on the first 182vi doesn't allow you to "wrap around" to the previous line by hitting
183<c>h</c> while you're on the first character. Likewise, you can't
136character. Likewise, you can't "wrap around" to the next line by hitting <c>l</c> at the end of a line. 184"wrap around" to the next line by hitting <c>l</c> at the end of a
185line.
137</p> 186</p>
138 187
139</body> 188</body>
140</section> 189</section>
141<section> 190<section>
142<title>Moving in vi, part 2</title> 191<title>Moving in vi, part 2</title>
143<body> 192<body>
144 193
194<p>
145<p>vi offers special shortcuts for jumping to the beginning or end of the current line. You can 195vi offers special shortcuts for jumping to the beginning or end of the
146 press <c>0</c> (zero) to jump to the first character of a line, and <c>$</c> to jump to the last character of the line. 196current line. You can press <c>0</c> (zero) to jump to the first
197character of a line, and <c>$</c> to jump to the last character of the
147Try 'em and see. Since vi has so many handy movement commands, it makes a great "pager" (like the 198line. Try 'em and see. Since vi has so many handy movement commands,
148more or less commands.) Using vi as a pager will also help you to learn all the movement 199it makes a great "pager" (like the more or less commands.) Using vi
149commands very quickly.</p> 200as a pager will also help you to learn all the movement commands very
201quickly.
202</p>
150 203
204<p>
151<p>You can also use <c>&lt;CTR&gt;F</c> and <c>&lt;CTR&gt;B</c> to move forwards and backwards a page at a time. 205You can also use <c>&lt;CTR&gt;F</c> and <c>&lt;CTR&gt;B</c> to move
206forwards and backwards a page at a time. Modern versions of vi (like
152Modern versions of vi (like vim) will also allow you to use the PGUP and PGDOWN keys for this purpose. 207vim) will also allow you to use the PGUP and PGDOWN keys for this
208purpose.
153</p> 209</p>
154 210
155</body> 211</body>
156</section> 212</section>
157<section> 213<section>
158<title>Word moves, part 1</title> 214<title>Word moves, part 1</title>
159<body> 215<body>
160 <p>vi also allows you to move to the left or right by word increments. To move to the <i>first</i> character of the
161 next word, press <c>w</c>. To move to the <i>last</i> character of the next word, press <c>e</c>. To move to the first character
162 of the <i>previous</i> word, press <c>b</c>. Test 'em out.</p>
163</body>
164</section>
165 216
217<p>
218vi also allows you to move to the left or right by word increments.
219To move to the <e>first</e> character of the next word, press
220<c>w</c>. To move to the <e>last</e> character of the next word,
221press <c>e</c>. To move to the first character of the <e>previous</e>
222word, press <c>b</c>. Test 'em out.
223</p>
224
225</body>
226</section>
166<section> 227<section>
167<title>Word moves, part 2</title> 228<title>Word moves, part 2</title>
168<body> 229<body>
230
231<p>
169<p>After playing around with the word movement commands, you may have noticed that vi 232After playing around with the word movement commands, you may have
170considers words like "foo-bar-oni" as five separate words! This is because by default, 233noticed that vi considers words like "foo-bar-oni" as five separate
234words! This is because by default, vi delimits words by spaces
171vi delimits words by spaces <i>or</i> punctuation. foo-bar-oni is therefore considered 235<e>or</e> punctuation. foo-bar-oni is therefore considered five
172five words: "foo","-","bar","-" and "oni".</p> 236words: "foo","-","bar","-" and "oni".
237</p>
238
239<p>
173<p>Sometimes, this is what you want, and sometimes it isn't. Fortunately, vi also 240Sometimes, this is what you want, and sometimes it isn't.
174 understands the concept of a "bigword". vi delimits bigwords by <i>spaces or newlines only</i>. 241Fortunately, vi also understands the concept of a "bigword". vi
242delimits bigwords by <e>spaces or newlines only</e>. This means that
175This means that while foo-bar-oni is considered five vi words, it's considered only one 243while foo-bar-oni is considered five vi words, it's considered only
176vi bigword.</p> 244one vi bigword.
245</p>
177 246
178</body> 247</body>
179</section> 248</section>
180<section> 249<section>
181<title>Word moves, part 3</title> 250<title>Word moves, part 3</title>
182<body> 251<body>
183<p>To jump around to the next and previous bigword, you can use a <i>capitalized</i> 252
184 word move command. Use <c>W</c> to jump to the first character of the next bigword, <c>E</c> to jump
185 to the last character of the next bigword, and <c>B</c> to jump to the first character
186of the previous bigword. Test 'em out, and compare the matching word and bigword movement
187commands until you understand their differences.
188</p> 253<p>
189 254To jump around to the next and previous bigword, you can use a
255<e>capitalized</e> word move command. Use <c>W</c> to jump to the
256first character of the next bigword, <c>E</c> to jump to the last
257character of the next bigword, and <c>B</c> to jump to the first
258character of the previous bigword. Test 'em out, and compare the
259matching word and bigword movement commands until you understand their
260differences.
261</p>
190 262
191</body> 263</body>
192</section> 264</section>
193<section> 265<section>
194<title>Bigger moves</title> 266<title>Bigger moves</title>
195<body> 267<body>
268
269<p>
196 <p>We just have a few more commands to cover before it's time to start puting together our 270We just have a few more commands to cover before it's time to start
197 cheat sheet. You can use the <c>(</c> and <c>)</c> characters to move to the beginning of the previous and next sentence. 271puting together our cheat sheet. You can use the <c>(</c> and
198 In addition, you can hit <c>{</c> or <c>}</c> to jump to the beginning of the current paragraph, and the beginning of the 272<c>)</c> characters to move to the beginning of the previous and next
199next. Test 'em out.</p> 273sentence. In addition, you can hit <c>{</c> or <c>}</c> to jump to
274the beginning of the current paragraph, and the beginning of the next.
275Test 'em out.
276</p>
200 277
201</body> 278</body>
202</section> 279</section>
203</chapter> 280</chapter>
281
204<chapter> 282<chapter>
205<title>quiting</title>
206<section>
207<title>Quitting</title> 283<title>Quitting</title>
284<section>
285<title>Quitting</title>
208<body> 286<body>
287
288<p>
209<p>We've covered the basic movement commands, but there are another couple of commands that you need 289We've covered the basic movement commands, but there are another
290couple of commands that you need to know. Typing <c>:q</c> will quit
210to know. Typing <c>:q</c> will quit vi. If this doesn't work, then you probably accidentally modified the file 291vi. If this doesn't work, then you probably accidentally modified the
211in some way. To tell vi to quit, throwing away any changes, type <c>:q!</c>. You should now be at the command 292file in some way. To tell vi to quit, throwing away any changes, type
212prompt.</p> 293<c>:q!</c>. You should now be at the command prompt.
294</p>
213 295
214<p>In vi, any command that begins with a ":" is said to be an <i>ex-mode</i> command. This is because vi 296<p>
297In vi, any command that begins with a ":" is said to be an
298<e>ex-mode</e> command. This is because vi has a built-in non-visual
215 has a built-in non-visual editor called <e>ex</e>. It can be used similarly to sed to perform line-based 299editor called <e>ex</e>. It can be used similarly to sed to perform
216editing operations. In addition, it can also be used to quit, as we've just seen. If you ever hit 300line-based editing operations. In addition, it can also be used to
301quit, as we've just seen. If you ever hit the <c>Q</c> key while in
217the <c>Q</c> key while in command mode, you'll be transported to ex mode. If this ever happens to you , you'll 302command mode, you'll be transported to ex mode. If this ever happens
218be confronted with a : prompt, and hitting enter will scroll the entire screen upwards. To get back 303to you , you'll be confronted with a : prompt, and hitting enter will
219to good 'ol vi mode, simply type vi and hit enter.</p> 304scroll the entire screen upwards. To get back to good 'ol vi mode,
305simply type vi and hit enter.
306</p>
220 307
221</body> 308</body>
222</section> 309</section>
223</chapter> 310</chapter>
311
224<chapter> 312<chapter>
225<title>The Cheat Sheet</title> 313<title>The Cheat Sheet</title>
226<section> 314<section>
227<title>The beginnings of the cheat sheet</title> 315<title>The beginnings of the cheat sheet</title>
228<body> 316<body>
317
318<p>
229<p>We've covered a lot of commands, and it's time to transcribe them to our cheat sheet. For the 319We've covered a lot of commands, and it's time to transcribe them to
230cheat sheet, you'll need a US letter or A4 sized piece of paper (we're going to pack a lot of info 320our cheat sheet. For the cheat sheet, you'll need a US letter or A4
321sized piece of paper (we're going to pack a lot of info onto this
231onto this sheet!) Here's a picture of my cheat sheet after I've transcribed all the commands that 322sheet!) Here's a picture of my cheat sheet after I've transcribed all
232we've covered so far. Try to follow my layout if possible so that we can fit everything on one 323the commands that we've covered so far. Try to follow my layout if
233sheet.</p> 324possible so that we can fit everything on one sheet.
325</p>
234 326
235<figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-first.png" short="First part of the cheat sheet" caption="Cheat Sheet"/> 327<figure
328link="http://www.ibiblio.org/web-gentoo/images/vicheat-first.png"
329short="First part of the cheat sheet" caption="Cheat Sheet"/>
236 330
237</body> 331</body>
238
239</section> 332</section>
240<section> 333<section>
241<title>Miscellaneous vi</title> 334<title>Miscellaneous vi</title>
242
243<body> 335<body>
244<p>Let's continue our rapid command-covering pace. In command-mode, you can jump to a particularline by typing <c>G</c>. To jump to the first line of a file, type <c>1G</c>. Note that <c>G</c> is capitalized.</p> 336
245<p>If you want to jump to the next occurence of a particular text pattern, type <c>/&lt;regexp&gt;</c> and hit <c>enter</c>. Replace 337<p>
246&lt;regexp&gt; with the regular expression you're looking for. If you don't know how to use regular expressions, don't 338Let's continue our rapid command-covering pace. In command-mode, you
247fret -- typing <c>/foo</c> will move to the next occurence of <i>foo</i>. The only thing you'll need to watch out for is when 339can jump to a particularline by typing <c>G</c>. To jump to the first
248you want to refer to the literal <i>^</i>, <i>.</i>, <i>$</i> or <i>\</i> characters. Prefix these characters with a backslash (<i>\</i>), and you'll 340line of a file, type <c>1G</c>. Note that <c>G</c> is capitalized.
341</p>
342
343<p>
344If you want to jump to the next occurence of a particular text
345pattern, type <c>/&lt;regexp&gt;</c> and hit <c>enter</c>. Replace
346&lt;regexp&gt; with the regular expression you're looking for. If you
347don't know how to use regular expressions, don't fret -- typing
348<c>/foo</c> will move to the next occurence of <e>foo</e>. The only
349thing you'll need to watch out for is when you want to refer to the
350literal <c>^</c>, <c>.</c>, <c>$</c> or <c>\</c> characters. Prefix
351these characters with a backslash (<c>\</c>), and you'll be set. For
249be set. For example, <c>/foo\.gif</c> will search for the next occurence of "<i>foo.gif</i>".</p> 352example, <c>/foo\.gif</c> will search for the next occurence of
250<p>To repeat the search forwards, hit <c>n</c>. To repeat the search backwards, type <c>N</c>. As always, test these 353"foo.gif".
354</p>
355
356<p>
357To repeat the search forwards, hit <c>n</c>. To repeat the search
358backwards, type <c>N</c>. As always, test these commands out in your
251commands out in your very own vi editor. You can also type <c>//</c> to repeat the last search.</p> 359very own vi editor. You can also type <c>//</c> to repeat the last
360search.
361</p>
252 362
253</body> 363</body>
254</section> 364</section>
255</chapter> 365</chapter>
366
256<chapter> 367<chapter>
257<title>Saving and Editing</title> 368<title>Saving and Editing</title>
258<section> 369<section>
259<title>Save and save as...</title> 370<title>Save and save as...</title>
260<body> 371<body>
372
373<p>
261<p>We've covered how you can use the <i>ex</i> command <c>:q</c> to quit from vi. If you want to save your 374We've covered how you can use the <e>ex</e> command <c>:q</c> to quit
262changes, type <c>:w</c>. If you want to save your changes to another file, type <c>:w filename.txt</c> to 375from vi. If you want to save your changes, type <c>:w</c>. If you
376want to save your changes to another file, type <c>:w filename.txt</c>
263save as <e>filename.txt</e>. If you want to save and quit, type <c>:x</c> or <c>:wq</c>.</p> 377to save as <e>filename.txt</e>. If you want to save and quit, type
264<p>In vim (and other advanced vi editors, like elvis)<c>:w</c>, you can have multiple buffers open at once. To open a file into a new window, type <c>:sp filename.txt</c>. <e>filename.txt</e> will appear open for editing in a new split window. To switch between windows, type <c>&lt;CTR&gt;w&lt;CTR&gt;w</c> (control-w twice). Any <c>:q</c>, <c>:q!</c>, <c>:w</c> and <c>:x</c> commands that you enter will only be applied to the currently-active window.</p> 378<c>:x</c> or <c>:wq</c>.
265</body> 379</p>
266</section>
267 380
381<p>
382In vim (and other advanced vi editors, like elvis)<c>:w</c>, you can
383have multiple buffers open at once. To open a file into a new window,
384type <c>:sp filename.txt</c>. <e>filename.txt</e> will appear open
385for editing in a new split window. To switch between windows, type
386<c>&lt;CTR&gt;w&lt;CTR&gt;w</c> (control-w twice). Any <c>:q</c>,
387<c>:q!</c>, <c>:w</c> and <c>:x</c> commands that you enter will only
388be applied to the currently-active window.
389</p>
390
391</body>
392</section>
268<section> 393<section>
269<title>Simple edits</title> 394<title>Simple edits</title>
270<body> 395<body>
396
397<p>
271<p>Now, it's time to start learning some of the simple editing commands. The commands that 398Now, it's time to start learning some of the simple editing commands.
272we'll cover here are considered "simple" because the commands keep you in command mode. The 399The commands that we'll cover here are considered "simple" because the
400commands keep you in command mode. The more complex editing commands
273more complex editing commands automatically put you into insert mode -- a mode that allows 401automatically put you into insert mode -- a mode that allows you to
274you to enter literal data from the keyboard. We'll cover those in a bit.</p> 402enter literal data from the keyboard. We'll cover those in a bit.
275<p>For now, try moving over some characters and hitting <c>x</c> repeatedly. You'll see that <c>x</c> 403</p>
404
405<p>
406For now, try moving over some characters and hitting <c>x</c>
407repeatedly. You'll see that <c>x</c> will delete the current
276will delete the current character under the cursor. Now, move to the middle of the paragraph 408character under the cursor. Now, move to the middle of the paragraph
277somewhere in your text file, and hit <c>J</c> (capitalized). You'll see that the <c>J</c> command tells 409somewhere in your text file, and hit <c>J</c> (capitalized). You'll
278vi to join the next line to the end of the current line. Now, move over a character and hit 410see that the <c>J</c> command tells vi to join the next line to the
411end of the current line. Now, move over a character and hit
279<c>r</c>, and then type in a new character; you'll see that the original character has been replaced. 412<c>r</c>, and then type in a new character; you'll see that the
280Finally, move to any line in the file and 413original character has been replaced. Finally, move to any line in
281type <c>dd</c>. You'll see that <c>dd</c> deletes the current line of text.</p> 414the file and type <c>dd</c>. You'll see that <c>dd</c> deletes the
415current line of text.
416</p>
282 417
283</body> 418</body>
284</section> 419</section>
285<section> 420<section>
286<title>Repeating and deleting</title> 421<title>Repeating and deleting</title>
287<body> 422<body>
423
424<p>
288 <p>You can repeat any editing command by hitting the <c>.</c> key. If you experiment, you'll see that 425You can repeat any editing command by hitting the <c>.</c> key. If
426you experiment, you'll see that typing <c>dd...</c> will delete 4
289 typing <c>dd...</c> will delete 4 lines, and <c>J......</c> will join four lines. As usual, vi provides with 427lines, and <c>J......</c> will join four lines. As usual, vi provides
290another handy shortcut. 428with another handy shortcut.
429</p>
430
291</p> 431<p>
292<p>To delete text, you can also use the <c>d</c> command combined with any movement command. For example, 432To delete text, you can also use the <c>d</c> command combined with
293 <c>dw</c> will delete from the current position to the beginning of the next word; <c>d)</c> will delete up until the 433any movement command. For example, <c>dw</c> will delete from the
294 end of the next sentence, and <c>d}</c> will delete the remainder of the paragraph. Experiment with the 434current position to the beginning of the next word; <c>d)</c> will
435delete up until the end of the next sentence, and <c>d}</c> will
436delete the remainder of the paragraph. Experiment with the
295 <c>d</c> command and the other editing commands until you're comfortable with them.</p> 437<c>d</c> command and the other editing commands until you're
438comfortable with them.
439</p>
440
296</body> 441</body>
297</section> 442</section>
298<section> 443<section>
299<title>Undo!</title> 444<title>Undo!</title>
300<body> 445<body>
301<p>Now that we're experimenting with deletion, it would be a good time to learn how to undo any changes. 446
302 By pressing <c>u</c>, the original version of vi allowed you to undo the last edit only. However, modern versions
303 of vi like vim will allow you to repeatedly press <c>u</c> to continue to undo changes to your file. Try combining
304 some <c>d</c> and <c>u</c> commands together.
305</p> 447<p>
306</body> 448Now that we're experimenting with deletion, it would be a good time to
307</section> 449learn how to undo any changes. By pressing <c>u</c>, the original
450version of vi allowed you to undo the last edit only. However, modern
451versions of vi like vim will allow you to repeatedly press <c>u</c> to
452continue to undo changes to your file. Try combining some <c>d</c>
453and <c>u</c> commands together.
454</p>
308 455
456</body>
457</section>
309<section> 458<section>
310<title>Updating the cheat sheet</title> 459<title>Updating the cheat sheet</title>
311<body> 460<body>
461
462<p>
312<p>Time to update the cheat sheet! After adding all the commands we've covered so far, your 463Time to update the cheat sheet! After adding all the commands we've
313cheat sheet should look like this:</p> 464covered so far, your cheat sheet should look like this:
465</p>
314 466
315 <figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-edit.png" short="Cheat sheet" caption="Cheat sheet with editing commands"/> 467<figure
468link="http://www.ibiblio.org/web-gentoo/images/vicheat-edit.png"
469short="Cheat sheet" caption="Cheat sheet with editing commands"/>
316 470
317</body> 471</body>
318</section> 472</section>
319</chapter> 473</chapter>
474
320<chapter> 475<chapter>
321<title>Insert mode</title> 476<title>Insert mode</title>
322<section> 477<section>
323<title>Insert mode</title>
324
325<body> 478<body>
479
480<p>
326<p>So far, we've covered how to move around in vi, perform file i/o, and perform basic editing 481So far, we've covered how to move around in vi, perform file i/o, and
327operations. However, I still haven't shown you how to actually type in free-form text! This 482perform basic editing operations. However, I still haven't shown you
483how to actually type in free-form text! This was intentional, because
328was intentional, because vi's insert mode is a bit complicated at first. However, after you 484vi's insert mode is a bit complicated at first. However, after you
329become comfortable with insert mode, its complexity (and flexibility) will become an asset. 485become comfortable with insert mode, its complexity (and flexibility)
486will become an asset.
487</p>
488
330</p> 489<p>
331<p>In vi insert mode, you'll be able to enter text directly to the screen just like you can in many 490In vi insert mode, you'll be able to enter text directly to the screen
332other visual editors. Once you've entered your modifications, you can hit escape to return to 491just like you can in many other visual editors. Once you've entered
333command mode. You can enter insert mode by pressing <c>i</c> or <c>a</c>. If you press <c>i</c>, your text will be <e>inserted</e> 492your modifications, you can hit escape to return to command mode. You
334before the current character, and if you hit <c>a</c>, your text will be <e>appended</e> after the current character. 493can enter insert mode by pressing <c>i</c> or <c>a</c>. If you press
335Remember, after you enter your text, hit <c>&lt;ESC&gt;</c> to return to command mode.</p> 494<c>i</c>, your text will be <e>inserted</e> before the current
495character, and if you hit <c>a</c>, your text will be <e>appended</e>
496after the current character. Remember, after you enter your text, hit
497<c>&lt;ESC&gt;</c> to return to command mode.
498</p>
499
336</body> 500</body>
337</section> 501</section>
338<section> 502<section>
339<title>Benefits of insert mode</title> 503<title>Benefits of insert mode</title>
340<body> 504<body>
341 <p>Go ahead and try using the <c>a</c> and <c>i</c> commands. Hit either <c>a</c> or <c>i</c>, type some text, and then hit 505
342 escape to get back to command mode. After hitting <c>a</c> or <c>i</c>, try hitting <c>&lt;ENTER&gt;</c>, and see what happens. 506<p>
343 Try using the arrow keys and the <c>&lt;DEL&gt;</c> key to get a feel for how insert mode works. By using 507Go ahead and try using the <c>a</c> and <c>i</c> commands. Hit either
344the arrow keys and <c>&lt;DEL&gt;</c> key, you can perform significant editing steps without repeatedly entering 508<c>a</c> or <c>i</c>, type some text, and then hit escape to get back
509to command mode. After hitting <c>a</c> or <c>i</c>, try hitting
510<c>&lt;ENTER&gt;</c>, and see what happens. Try using the arrow keys
511and the <c>&lt;DEL&gt;</c> key to get a feel for how insert mode
512works. By using the arrow keys and <c>&lt;DEL&gt;</c> key, you can
513perform significant editing steps without repeatedly entering and
345and leaving insert mode</p> 514leaving insert mode
515</p>
516
346</body> 517</body>
347</section> 518</section>
348<section> 519<section>
349<title>Insert options</title> 520<title>Insert options</title>
350<body> 521<body>
522
523<p>
351 <p>Here are some other handy ways to enter insert mode. Press <c>A</c> (captial) to begin appending 524Here are some other handy ways to enter insert mode. Press <c>A</c>
525(captial) to begin appending to the <e>end</e> of the current line,
352 to the <e>end</e> of the current line, regardless of your current position on the line. Likewise, press 526regardless of your current position on the line. Likewise, press
353 <c>I</c> (capital) to begin inserting text at the <e>beginning</e> of the current line. Press <c>o</c> to create 527<c>I</c> (capital) to begin inserting text at the <e>beginning</e> of
354 a new blank line below the current line into which you can insert text, and press <c>O</c> (capital) to 528the current line. Press <c>o</c> to create a new blank line below the
355create a new line above the current line. To replace the entire current line with a new line, 529current line into which you can insert text, and press <c>O</c>
356press <c>cc</c>. To replace everything from the current position to the end of the line, type <c>c$</c>. To replace 530(capital) to create a new line above the current line. To replace the
531entire current line with a new line, press <c>cc</c>. To replace
357everything from the current position to the beginning of the line, type <c>c0</c>.</p> 532everything from the current position to the end of the line, type
533<c>c$</c>. To replace everything from the current position to the
534beginning of the line, type <c>c0</c>.
535</p>
536
537<p>
358<p>In addition to performing a special operation, every one of these commands will put you 538In addition to performing a special operation, every one of these
359 into insert mode. After typing in your text, hit <c>&lt;ESC&gt;</c> to return to command mode. 539commands will put you into insert mode. After typing in your text,
540hit <c>&lt;ESC&gt;</c> to return to command mode.
360</p> 541</p>
361 542
362</body> 543</body>
363</section> 544</section>
364<section> 545<section>
365<title>Changing text</title> 546<title>Changing text</title>
366<body> 547<body>
367 <p>We've used the <c>c</c> (change) command a little bit so far when we typed <c>cc</c>, <c>c0</c> and <c>c$</c>. <c>cc</c> is a special 548
368 form of the change command, similar to <c>dd</c>. the <c>c0</c> and <c>c$</c> commands are examples of using the change 549<p>
369 command in combination with a movement command. In this form, <c>c</c> works similarly to <c>d</c>, except that it 550We've used the <c>c</c> (change) command a little bit so far when we
370leaves you in insert mode so that you can enter replacement text for the deleted region. Try combining some 551typed <c>cc</c>, <c>c0</c> and <c>c$</c>. <c>cc</c> is a special form
371movement commands with <c>c</c> and test them out on your file (hint: <c>cW</c>, <c>ce</c>, <c>c(</c> .) 552of the change command, similar to <c>dd</c>. the <c>c0</c> and
553<c>c$</c> commands are examples of using the change command in
554combination with a movement command. In this form, <c>c</c> works
555similarly to <c>d</c>, except that it leaves you in insert mode so
556that you can enter replacement text for the deleted region. Try
557combining some movement commands with <c>c</c> and test them out on
558your file (hint: <c>cW</c>, <c>ce</c>, <c>c(</c> .)
372</p> 559</p>
373 560
374</body> 561</body>
375</section> 562</section>
376</chapter> 563</chapter>
564
377<chapter> 565<chapter>
378<title>Compound Commands</title> 566<title>Compound Commands</title>
379<section> 567<section>
380<title>Compound commands</title>
381<body> 568<body>
382 <p>vi <e>really</e> becomes powerful when you start using compound ("combo") commands, like <c>d{</c> and <c>cw</c>. 569
570<p>
571vi <e>really</e> becomes powerful when you start using compound
572("combo") commands, like <c>d{</c> and <c>cw</c>. In addition to
383In addition to these commands, you can also combine a number with any movement command, such as 573these commands, you can also combine a number with any movement
384<c>3w</c>, which will tell vi to jump three words to the right. Here are some more movement "combo" command 574command, such as <c>3w</c>, which will tell vi to jump three words to
575the right. Here are some more movement "combo" command examples:
385examples: <c>12b</c>, <c>4j</c>.</p> 576<c>12b</c>, <c>4j</c>.
577</p>
578
579<p>
386<p>vi, in addition to allowing (number)(movement command) combinations, also allows <c>d</c> or <c>c</c> 580vi, in addition to allowing (number)(movement command) combinations,
387 to be combined with a number or movement command. So, <c>d3w</c> will delete the next three words, <c>d2j</c> will 581also allows <c>d</c> or <c>c</c> to be combined with a number or
388 delete the current and next two lines, etc. Test out some <c>c</c> and <c>d</c> combo moves to get a feel for 582movement command. So, <c>d3w</c> will delete the next three words,
583<c>d2j</c> will delete the current and next two lines, etc. Test out
584some <c>c</c> and <c>d</c> combo moves to get a feel for how powerful
389how powerful and concise vi editing can be. Once these commands are second-nature, you'll be able 585and concise vi editing can be. Once these commands are second-nature,
390to edit files at blazing speed.</p> 586you'll be able to edit files at blazing speed.
587</p>
391 588
392</body> 589</body>
393</section> 590</section>
394<section> 591<section>
395<title>Updating the cheat sheet</title> 592<title>Updating the cheat sheet</title>
396<body> 593<body>
594
595<p>
397<p>Time to update the cheat sheet again. Here's what it looks like so far:</p> 596Time to update the cheat sheet again. Here's what it looks like so
597far:
398<p> 598</p>
399 <figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-compound.png" short="Cheat Sheet" caption="Cheat sheet with compound commands"/>
400 599
401</p> 600<figure
601link="http://www.ibiblio.org/web-gentoo/images/vicheat-compound.png"
602short="Cheat Sheet" caption="Cheat sheet with compound commands"/>
603
402</body> 604</body>
403</section> 605</section>
404<section> 606<section>
405<title>Productivity features</title> 607<title>Productivity features</title>
406
407<body> 608<body>
609
610<p>
408<p>So far, we've covered how to move, save and quit, perform simple edits 611So far, we've covered how to move, save and quit, perform simple edits
409and deletions, and use insert mode. With everything listed on the cheat 612and deletions, and use insert mode. With everything listed on the
410sheet so far, you should be able to use vi to perform almost any task.</p> 613cheat sheet so far, you should be able to use vi to perform almost any
614task.
615</p>
616
617<p>
411<p>However, vi also has many more powerful commands. In this section, you'll 618However, vi also has many more powerful commands. In this section,
412 learn how to <e>cut</e>, <e>copy</e> and <e>paste</e>, <e>search</e> and <e>replace</e>, and use <e>autoindent</e> 619you'll learn how to <e>cut</e>, <e>copy</e> and <e>paste</e>,
620<e>search</e> and <e>replace</e>, and use <e>autoindent</e> features.
413features. These commands will help make vi more fun and productive.</p> 621These commands will help make vi more fun and productive.
622</p>
414 623
415</body> 624</body>
416</section> 625</section>
417<section> 626<section>
418<title>Visual mode</title> 627<title>Visual mode</title>
419<body> 628<body>
629
630<p>
420<p>The best way to cut and paste is to use visual mode, a special mode that 631The best way to cut and paste is to use visual mode, a special mode that
421has been added to modern versions of vi, like vim and elvis. You can think 632has been added to modern versions of vi, like vim and elvis. You can think
422of visual mode as a "highlight text" mode. Once the text is highlighted, 633of visual mode as a "highlight text" mode. Once the text is highlighted,
423it can be copied or deleted, and then pasted. If you are using gvim, you 634it can be copied or deleted, and then pasted. If you are using gvim, you
424can highlight by simply dragging the left mouse button over a particular 635can highlight by simply dragging the left mouse button over a particular
425region:</p> 636region:
426<p> 637</p>
427 <figure link="http://www.ibiblio.org/web-gentoo/images/vihighlight.png" short="Highlighted text" caption="VIM with highlighted text"/>
428 638
639<figure
640link="http://www.ibiblio.org/web-gentoo/images/vihighlight.png"
641short="Highlighted text" caption="VIM with highlighted text"/>
642
429</p> 643<p>
430</body>
431</section>
432<section>
433<title></title>
434<body>
435
436 <p>In addition, you can also enter visual mode by hitting <c>v</c> (this may be your 644In addition, you can also enter visual mode by hitting <c>v</c> (this
437only option if you are using vi from the console.) Then, by moving the cursor 645may be your only option if you are using vi from the console.) Then,
438using movement commands (typically the arrow keys), you'll be able to highlight 646by moving the cursor using movement commands (typically the arrow
647keys), you'll be able to highlight a region of text. Once
439a region of text. Once highlighted, we are ready to cut or copy the text. 648highlighted, we are ready to cut or copy the text.
649</p>
650
440</p> 651<p>
441
442<p>If you're copying the text, hit <c>y</c> (which stands for "yank"). If you're cutting 652If you're copying the text, hit <c>y</c> (which stands for "yank").
443 the text, hit <c>d</c>. You'll be placed back in command mode. Now, move to the position 653If you're cutting the text, hit <c>d</c>. You'll be placed back in
654command mode. Now, move to the position where you'd like to insert
444 where you'd like to insert the cut or copied text, and hit <c>P</c> to insert after the cursor, 655the cut or copied text, and hit <c>P</c> to insert after the cursor,
445 or <c>p</c> to insert before the cursor. Voila, the cut/copy and paste is complete! 656or <c>p</c> to insert before the cursor. Voila, the cut/copy and
446Test out several copy/cut and paste operations before advancing to the next section. 657paste is complete! Test out several copy/cut and paste operations
658before advancing to the next section.
447</p> 659</p>
448 660
449</body> 661</body>
450</section> 662</section>
451<section> 663<section>
452<title>Replacing text</title> 664<title>Replacing text</title>
453<body> 665<body>
666
667<p>
454 <p>To replace patterns of text, we use <e>ex</e> mode. If you'd like to replace the first pattern 668To replace patterns of text, we use <e>ex</e> mode. If you'd like to
455 that appears on the current line, type <c>:s/&lt;regexp&gt;/&lt;replacement&gt;/</c> and hit <c>&lt;ENTER&gt;</c>, where &lt;regexp&gt; 669replace the first pattern that appears on the current line, type
670<c>:s/&lt;regexp&gt;/&lt;replacement&gt;/</c> and hit
671<c>&lt;ENTER&gt;</c>, where &lt;regexp&gt; is the pattern you'd like
456is the pattern you'd like to match and &lt;replacement&gt; is the replacement string. To replace all 672to match and &lt;replacement&gt; is the replacement string. To
457matches on the current line, type <c>:s/&lt;regexp&gt;/&lt;replacement&gt;/g</c> and hit enter. To replace every 673replace all matches on the current line, type
458occurence of this pattern in your file (normally what you want), type <c>:%s/&lt;regexp&gt;/&lt;replacement&gt;/g</c>. 674<c>:s/&lt;regexp&gt;/&lt;replacement&gt;/g</c> and hit enter. To
675replace every occurence of this pattern in your file (normally what
676you want), type <c>:%s/&lt;regexp&gt;/&lt;replacement&gt;/g</c>. If
459If you'd like to do a global replace, but have vi prompt you for each change, type 677you'd like to do a global replace, but have vi prompt you for each
460<c>:%s/&lt;regexp&gt;/&lt;replacement&gt;/gc</c> (stands for "confirm") and hit <c>&lt;ENTER&gt;</c>.</p> 678change, type <c>:%s/&lt;regexp&gt;/&lt;replacement&gt;/gc</c> (stands
679for "confirm") and hit <c>&lt;ENTER&gt;</c>.
680</p>
461 681
462</body> 682</body>
463</section> 683</section>
464<section> 684<section>
465<title>Indentation</title> 685<title>Indentation</title>
466<body> 686<body>
687
688<p>
467<p>vi supports autoindentation, for when you are editing source code. Most modern versions 689vi supports autoindentation, for when you are editing source code.
468of vi (like vim) will auto-enable autoindent mode when you are editing a source file (like a .c 690Most modern versions of vi (like vim) will auto-enable autoindent mode
469file, for example). When autoindent is enabled, you can use <c>&lt;CTR&gt;d</c> (control-d) to move one indent 691when you are editing a source file (like a .c file, for example).
692When autoindent is enabled, you can use <c>&lt;CTR&gt;d</c>
693(control-d) to move one indent level to the left, and
470level to the left, and <c>&lt;CTR&gt;t</c> (control-t) to move one indent level to the right. If autoindent 694<c>&lt;CTR&gt;t</c> (control-t) to move one indent level to the right.
471wasn't enabled automatically, you can manually enable it by typing in the <e>ex</e> command <c>:set</c> autoindent. 695If autoindent wasn't enabled automatically, you can manually enable it
696by typing in the <e>ex</e> command <c>:set</c> autoindent. You can
472You can also tell vi to set the tab size to your favorite setting by using the <c>:set tabstop</c> command; 697also tell vi to set the tab size to your favorite setting by using the
473<c>:set tabstop=4</c> is quite popular.</p> 698<c>:set tabstop</c> command; <c>:set tabstop=4</c> is quite popular.
699</p>
474 700
475</body> 701</body>
476</section> 702</section>
477<section> 703<section>
478<title>Our final cheat sheet</title> 704<title>Our final cheat sheet</title>
479<body> 705<body>
480<p>Well, we've reached the end of the vi tutorial! After adding all the advanced editing commands
481to your cheat sheet, it should look like this:</p>
482<p>
483 <figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-final.png" short="Cheat Sheet" caption="Final cheet sheet"/>
484 706
485</p> 707<p>
708Well, we've reached the end of the vi tutorial! After adding all the
709advanced editing commands to your cheat sheet, it should look like
710this:
711</p>
486 712
713<figure
714link="http://www.ibiblio.org/web-gentoo/images/vicheat-final.png"
715short="Cheat Sheet" caption="Final cheet sheet"/>
716
717<p>
487<p>Keep your cheat sheet handy, and begin using vi to edit files and compose emails. Refer to the 718Keep your cheat sheet handy, and begin using vi to edit files and
488cheat sheet when needed; you'll find that within the week, you'll have nearly all the commands 719compose emails. Refer to the cheat sheet when needed; you'll find
720that within the week, you'll have nearly all the commands memorized
489memorized and your vi productivity will shoot through the roof!</p> 721and your vi productivity will shoot through the roof!
722</p>
490 723
491</body> 724</body>
492</section> 725</section>
493<section> 726<section>
494<title>Resources</title> 727<title>Resources</title>
495<body> 728<body>
729
730<p>
496<p>Here are some resources you may find helpful as you continue to learn more about vi:</p> 731Here are some resources you may find helpful as you continue to learn
732more about vi:
733</p>
734
497<ul> 735<ul>
498<li><uri link="http://www.thomer.com/thomer/vi/vi.html">The vi Lovers Home Page</uri>, an excellent resource for all 736 <li>
499things vi.</li> 737 <uri link="http://www.thomer.com/thomer/vi/vi.html">The vi Lovers
738 Home Page</uri>, an excellent resource for all things vi
739 </li>
740 <li>
500<li><uri link="http://www.vim.org/">The vim homepage</uri> is the place to go for all your vim needs.</li> 741 <uri link="http://www.vim.org/">The vim homepage</uri> is the place
501<li>If you're looking for a good, old-fashioned book, <uri link="http://www.oreilly.com/catalog/vi6/">Learning the vi Editor, 6th Edition</uri> would be an excellent choice. Contains good coverage of vi and vi clones.</li> 742 to go for all your vim needs
743 </li>
744 <li>
745 If you're looking for a good, old-fashioned book, <uri
746 link="http://www.oreilly.com/catalog/vi6/">Learning the vi Editor,
747 6th Edition</uri> would be an excellent choice. Contains good
748 coverage of vi and vi clones.
749 </li>
502</ul> 750</ul>
751
503</body> 752</body>
504</section> 753</section>
505<section> 754<section>
506<title>About this document</title> 755<title>About this document</title>
507<body> 756<body>

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.20