1 |
swift |
1.1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 |
|
|
|
3 |
swift |
1.6 |
<!-- $Header$ --> |
4 |
|
|
|
5 |
swift |
1.1 |
<!-- |
6 |
blubber |
1.5 |
English doc rev 1.8 |
7 |
swift |
1.1 |
--> |
8 |
|
|
|
9 |
swift |
1.3 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
10 |
swift |
1.2 |
<guide link = "/doc/nl/vi-guide.xml"> |
11 |
swift |
1.1 |
<title>vi leren -- de cheatsheet methode</title> |
12 |
|
|
<author title="Author"><mail link="drobbins@gentoo.org">Daniel Robbins</mail></author> |
13 |
|
|
<author title="Author"><mail link="stocke2@gentoo.org">Eric Stockbridge</mail></author> |
14 |
|
|
<author title="Translator"><mail link="swift@gentoo.org">Sven Vermeulen</mail></author> |
15 |
|
|
<abstract> |
16 |
|
|
Deze handleiding zal je uitleggen hoe je vi leert gebruiken met een cheatsheet |
17 |
|
|
zodat je snel je commando's kan terugvinden. Deze handleiding is bedoelt voor |
18 |
|
|
vi-beginners. |
19 |
|
|
</abstract> |
20 |
blubber |
1.5 |
|
21 |
|
|
<version>1.1.2</version> |
22 |
|
|
<date>4 Oktober 2003</date> |
23 |
swift |
1.1 |
|
24 |
|
|
<chapter> |
25 |
|
|
<title>Erin vliegen</title> |
26 |
|
|
<section> |
27 |
|
|
<title>Inleiding</title> |
28 |
|
|
<body> |
29 |
|
|
<p> |
30 |
|
|
Deze tutorial zal je uitleggen hoe je vi, een zeer krachtige editor, kan |
31 |
|
|
gebruiken. Door gebruik te maken van een krachtige cheatsheet zal je wat je |
32 |
|
|
leert niet snel vergeten en kan je toch snel veel zaken van vi aanleren. In |
33 |
|
|
deze tutorial zullen we je leren navigeren, tekst aanpassen, insert mode |
34 |
|
|
gebruiken, kopieren en plakken van tekst, alsook belangrijke vim-extensies |
35 |
|
|
zoals multi-window editing. |
36 |
|
|
</p><p> |
37 |
|
|
Indien je niet echt zeker bent van jezelf of je bent nog niet echt gewend om |
38 |
|
|
met vi te werken, dan ben je het jezelf verschuldigd om deze tutorial te lezen |
39 |
|
|
om snel met een van de meest populaire en krachtige Linux/UNIX editors te |
40 |
|
|
kunnen werken. |
41 |
|
|
</p> |
42 |
|
|
|
43 |
|
|
</body> |
44 |
|
|
</section> |
45 |
|
|
<section> |
46 |
|
|
<title>Over de handleiding</title> |
47 |
swift |
1.6 |
<body> |
48 |
|
|
</body> |
49 |
|
|
</section> |
50 |
|
|
<section> |
51 |
swift |
1.1 |
<title>VI snel leren</title> |
52 |
|
|
<body> |
53 |
|
|
<p> |
54 |
|
|
Er is 1 ding dat vi zeer moeilijk maakt te leren -- vi heeft veeel commando's. |
55 |
|
|
Om vi efficient te gebruiken dien je er best enkele van buiten te kennen. Dit |
56 |
|
|
kan lang duren, en een van de doelen van deze handleiding is om niet al te veel |
57 |
|
|
van je tijd in te nemen. Dus, eerste uitdaging: hoe zorgen we ervoor dat je |
58 |
|
|
snel en efficient de commando's kan terugvinden zonder ze direct vanbuiten te |
59 |
|
|
blokken? |
60 |
|
|
</p> |
61 |
|
|
<p> |
62 |
|
|
Om deze uitdaging tot een goed einde te brengen gaan we een cheatsheet |
63 |
|
|
aanmaken. Deze bevat alle belangrijke vi-commando's. Nadat je deze tutorial |
64 |
|
|
gelezen en uitgevoerd hebt zal je van deze cheatsheet kunnen gebruik maken om |
65 |
|
|
vergeten commando's terug te vinden. Naarmate je de commando's meer en meer |
66 |
|
|
gebruikt zal je minder en minder afhankelijk worden van de cheatsheet. Door |
67 |
|
|
deze methode leer je dus snel efficient werken met vi! |
68 |
|
|
</p> |
69 |
|
|
</body> |
70 |
|
|
</section> |
71 |
|
|
<section> |
72 |
|
|
<title>Het leerproces</title> |
73 |
|
|
<body> |
74 |
|
|
|
75 |
|
|
<p> |
76 |
|
|
In deze handleiding zal ik verschillende technieken gebruiken om je te helpen |
77 |
|
|
leren. Allereerst zal ik uitleggen hoe een specifiek commando werkt (dit is |
78 |
|
|
nogal wiedes :). Daarna zal ik je vragen om het commando in vi uit te testen |
79 |
|
|
(praktijkervaring, zeer belangrijk) en daarna moet je iets op je cheatsheet |
80 |
|
|
schrijven (voor toekomstig hergebruik). Indien je vi snel wil leren is het |
81 |
|
|
belangrijk dat je al deze stappen uitvoert. Een commando proberen in vi en |
82 |
|
|
neerschrijven zal je helpen in het memorizeren van het commando. |
83 |
|
|
</p> |
84 |
|
|
</body> |
85 |
|
|
</section> |
86 |
|
|
<section> |
87 |
|
|
<title>Inleiding vim</title> |
88 |
|
|
<body> |
89 |
|
|
|
90 |
|
|
<p> |
91 |
|
|
Er zijn verschillende vi-versies, en ik zal je uitleggen hoe je met 1 |
92 |
|
|
specifieke versie moet werken, namelijk "vim". Vim is zeer populair en heeft |
93 |
|
|
enkele extraatjes die vi heel wat leuker maken (wanneer ik een vim-specifiek |
94 |
|
|
commando demonstreer zal ik dat wel zeggen). Indien je vim nog moet |
95 |
swift |
1.4 |
installeren: je kan deze vinden op |
96 |
|
|
<uri link="http://www.vim.org">www.vim.org</uri>. Er is tevens |
97 |
swift |
1.1 |
gvim, een mooie grafische editor die net als vim werkt, maar dan met een mooie |
98 |
|
|
GTK+ grafische interface. Hier is er een gvim screenshot van de auteur: |
99 |
|
|
</p> |
100 |
|
|
|
101 |
swift |
1.4 |
<figure link="http://www.ibiblio.org/web-gentoo/images/vishot.png" short="screenshot" caption="VIM screenshot"/> |
102 |
swift |
1.1 |
|
103 |
|
|
<p> |
104 |
|
|
Indie je een vi newbie bent, probeer dan gvim op je systeem. Het gebruiken van |
105 |
|
|
vi via een GUI kan de moeilijkheidsgraad verlagen. |
106 |
|
|
</p> |
107 |
|
|
|
108 |
|
|
</body> |
109 |
|
|
</section> |
110 |
|
|
</chapter> |
111 |
|
|
<chapter> |
112 |
|
|
<title>Eerste stappen</title> |
113 |
|
|
<section> |
114 |
|
|
<title>Kies een bestand</title> |
115 |
|
|
<body> |
116 |
|
|
<p> |
117 |
|
|
Alvorens je vi leert gebruiken om bestanden aan te passen is het belangrijk te |
118 |
|
|
weten hoe je onder vi in een bestand navigeert. Vi heeft veel |
119 |
|
|
bewegingscommando's, en we gaan er een groot deel van bespreken. Voor dit deel |
120 |
|
|
van de tutorial zoek je best een onbelangrijk tekstbestand en laadt het in via |
121 |
|
|
vi door het volgende in te typen: |
122 |
|
|
</p> |
123 |
|
|
<pre> |
124 |
|
|
$ vi myfile.txt |
125 |
|
|
</pre><p> |
126 |
|
|
Indien je vim geinstalleerd staan hebt, type dan "vim myfile.txt". Indien je |
127 |
|
|
liever gvim gebruikt, type je "gvim myfile.txt". myfile.txt moet uiteraard de |
128 |
|
|
naam zijn van dat onbelangrijk tekstbestand. |
129 |
|
|
</p> |
130 |
|
|
</body> |
131 |
|
|
</section> |
132 |
|
|
|
133 |
|
|
<section> |
134 |
|
|
<title>Binnenin vi</title> |
135 |
|
|
<body> |
136 |
|
|
|
137 |
|
|
<p> |
138 |
|
|
Nadat vi geladen is zal je een deel van je tekstbestand zien op je scherm. |
139 |
|
|
Proficiat, je bent in vi. In tegenstelling tot veel editors start vi in wat de |
140 |
|
|
"command mode" heet. Dat wil zeggen dat indien je "l" indrukt op je keyboard, |
141 |
|
|
dat dan geen "l" in je tekstbestand wordt gestoken, maar dat de cursor 1 |
142 |
|
|
karakter naar rechts zal verschuiven. In command mode zijn de karakters die je |
143 |
|
|
ingeeft de commando's die je aan vi geeft, dit in tegenstelling tot de meeste |
144 |
|
|
editors waar de karakters direct aanpassingen veroorzaken in het tekstbestand. |
145 |
|
|
Een van de meest essentiele types van commando's zijn navigatiecommando's. |
146 |
|
|
Laten we er eens enkele bekijken: |
147 |
|
|
</p> |
148 |
|
|
|
149 |
|
|
</body> |
150 |
|
|
</section> |
151 |
|
|
</chapter> |
152 |
|
|
<chapter> |
153 |
|
|
<title>Rondhuppelen</title> |
154 |
|
|
<section> |
155 |
|
|
<title>Rondhuppelen in vi, deel 1</title> |
156 |
|
|
<body> |
157 |
|
|
|
158 |
|
|
<p> |
159 |
|
|
Wanneer je in command mode bent kan je de <c>h</c>, <c>j</c>, <c>k</c> en |
160 |
|
|
<c>l</c> gebruiken om je cursor links, lager, hoger of rechts plaatsen. De |
161 |
|
|
<c>h</c>, <c>j</c>, <c>k</c> en <c>l</c> toetsen zijn handig omdat, wanneer je |
162 |
|
|
ze gewend bent, je zeer snel kan navigeren aangezien je je handpalm niet moet |
163 |
|
|
verleggen. Gebruik <c>h, j, k</c> en <c>l</c> nu om in je tekstbestand te |
164 |
|
|
navigeren. Bemerk dat vi je niet toelaat om naar de vorige regel te springen |
165 |
|
|
indien je <c>h</c> indrukt terwijl je op het eerste karakter van een zin staat. |
166 |
|
|
Uiteraard zal tevens <c>l</c> niet naar een nieuwe regel springen indien je op |
167 |
|
|
het einde van een zin staat. |
168 |
|
|
</p> |
169 |
|
|
|
170 |
|
|
</body> |
171 |
|
|
</section> |
172 |
|
|
<section> |
173 |
|
|
<title>Rondhuppelen in vi, deel 2</title> |
174 |
|
|
<body> |
175 |
|
|
|
176 |
|
|
<p> |
177 |
|
|
vi levert speciale shortcuts voor het springen naar het begin en einde van een |
178 |
|
|
regel. Je kan <c>0</c> (nul) indrukken om naar het begin te vliegen, en |
179 |
|
|
<c>$</c> voor het einde. Probeer maar. Aangezien vi nog meer van deze leuke |
180 |
|
|
zaken heeft is het een zeer handige "pager" (zoals less en more). Indien je vi |
181 |
|
|
instelt als je pager zal je nog sneller al zijn navigatiecommando's leren. |
182 |
|
|
</p> |
183 |
|
|
|
184 |
|
|
<p> |
185 |
|
|
Je kan tevens <c><CTRL>-F</c> en <c><CTRL>-B</c> gebruiken om een |
186 |
|
|
volledige pagina verder respectievelijk terug te gaan. Moderne versies van vi |
187 |
|
|
(zoals vim) laten je tevens toe PGUP en PGDOWN te gebruiken. |
188 |
|
|
</p> |
189 |
|
|
|
190 |
|
|
</body> |
191 |
|
|
</section> |
192 |
|
|
<section> |
193 |
|
|
<title>Woordgoochelen, deel 1</title> |
194 |
|
|
<body> |
195 |
|
|
<p> |
196 |
|
|
vi laat toe dat je links en rechts navigeert, woord per woord. Om naar het |
197 |
|
|
eerste karakter van het volgende woord te gaan, druk <c>w</c>. Om naar het |
198 |
|
|
laatste karakter van het volgende woord te gaan, druk <c>e</c>. Om naar het |
199 |
swift |
1.6 |
eerste karakter van het <c>voorgaande</c> woord te gaan, druk <c>b</c>. Zeker |
200 |
swift |
1.1 |
uitproberen! |
201 |
|
|
</p> |
202 |
|
|
</body> |
203 |
|
|
</section> |
204 |
|
|
|
205 |
|
|
<section> |
206 |
|
|
<title>Woordgoochelen, deel 2</title> |
207 |
|
|
<body> |
208 |
|
|
<p> |
209 |
|
|
Nadat je met deze commando's wat zitten spelen hebt zal je merken dat vi |
210 |
|
|
woorden zoals "foo-bar-oni" als 5 aparte woorden interpreteert! Dit is per |
211 |
swift |
1.6 |
default aangezien vi woorden onderscheidt tussen spaties <c>of</c> punctuatie. |
212 |
swift |
1.1 |
foo-bar-oni is dus een 5-woorden-term: "foo", "-", "bar", "-" en "oni". |
213 |
|
|
</p> |
214 |
|
|
<p> |
215 |
|
|
Soms is dit wat je wil, soms ook niet. Gelukkig herkent vi ook het concept van |
216 |
swift |
1.6 |
"grote woorden". vi onderscheidt grote woorden enkel door <c>spaties of nieuwe |
217 |
|
|
regels</c>. Dit wil zeggen dat, terwijl foo-bar-oni als een 5-woorden-vi-term |
218 |
swift |
1.1 |
gezien wordt, het maar 1 vi-groot-woord is. |
219 |
|
|
</p> |
220 |
|
|
|
221 |
|
|
</body> |
222 |
|
|
</section> |
223 |
|
|
<section> |
224 |
|
|
<title>Woordgoochelen, deel 3</title> |
225 |
|
|
<body> |
226 |
|
|
<p> |
227 |
|
|
Om tussen de vorige en volgende grote woorden te navigeren moet je dezelfde |
228 |
swift |
1.6 |
commando's gebruiken, maar dan in <c>hoofdletters</c>. Dus <c>W</c> om naar het |
229 |
swift |
1.1 |
eerste karakter van het volgende woord te gaan, <c>E</c> voor het laatste |
230 |
|
|
karakter van het volgende woord, en <c>B</c> voor het eerste karakter van het |
231 |
|
|
voorgaande grote woord. |
232 |
|
|
</p> |
233 |
|
|
|
234 |
|
|
|
235 |
|
|
</body> |
236 |
|
|
</section> |
237 |
|
|
<section> |
238 |
|
|
<title>Andere bewegingen</title> |
239 |
|
|
<body> |
240 |
|
|
<p> |
241 |
|
|
Er zijn nog enkele andere leuke commando's die je zeker moet kennen alvorens je |
242 |
|
|
je cheatsheet opstelt. Je kan de <c>(</c> en <c>)</c> karakters gebruiken om |
243 |
|
|
naar het begin van de volgende respectievelijk vorige regel te gaan. |
244 |
|
|
Daarbij kan je tevens <c>{</c> en <c>}</c> gebruiken om naar het begin van de |
245 |
|
|
volgende respectievelijk vorige paragraaf te gaan. |
246 |
|
|
</p> |
247 |
|
|
|
248 |
|
|
</body> |
249 |
|
|
</section> |
250 |
|
|
</chapter> |
251 |
|
|
<chapter> |
252 |
|
|
<title>Afsluiten</title> |
253 |
|
|
<section> |
254 |
|
|
<title>Afsluiten</title> |
255 |
|
|
<body> |
256 |
|
|
<p> |
257 |
|
|
Nu je weet hoe je moet navigeren, zijn er nog enkele andere commando's die zeer |
258 |
|
|
belangrijk zijn. Gebruik <c>:q</c> om vi af te sluiten. Indien dat niet werkt, |
259 |
|
|
dan heb je waarschijnlijk het bestand (per ongeluk) aangepast. Om vi te |
260 |
|
|
forceren af te sluiten, zonder de aanpassingen op te slaan, type je <c>:q!</c>. |
261 |
|
|
Je zou jezelf nu weer op de prompt moeten bevinden. |
262 |
|
|
</p> |
263 |
|
|
|
264 |
|
|
<p> |
265 |
swift |
1.6 |
In vi zijn de commando's die beginnen met ":" zogenaamde <c>ex-mode</c> |
266 |
swift |
1.1 |
commando's. Dit is omdat vi een ingebouwde niet-visuele editor bevat, genaamd |
267 |
|
|
<e>ex</e>. Deze kan gebruikt worden, net zoals sed, om regel-aanpassing |
268 |
|
|
operaties uit te voeren. Zoals je dus al zag kan het tevens gebruikt worden om |
269 |
|
|
vi af te sluiten. Indien je ooit <c>Q</c> slaat terwijl je in commando-mode |
270 |
|
|
zit, dan zal je naar de ex-mode gaan. Indien dat ooit gebeurt zal je door een |
271 |
|
|
":"-prompt begroet worden. Door enter te slaan zal je een volledig scherm terug |
272 |
|
|
gescrolled worden. Om naar de goede oude vi-mode over te gaan, type gewoon vi |
273 |
|
|
en druk enter. |
274 |
|
|
</p> |
275 |
|
|
|
276 |
|
|
</body> |
277 |
|
|
</section> |
278 |
|
|
</chapter> |
279 |
|
|
<chapter> |
280 |
|
|
<title>De cheatsheet</title> |
281 |
|
|
<section> |
282 |
|
|
<title>De beginselen van de cheatsheet</title> |
283 |
|
|
<body> |
284 |
|
|
<p> |
285 |
|
|
We hebben al een aardig aantal commando's bekeken, en dus is het tijd om ze te |
286 |
|
|
noteren op onze cheatsheet. Je neemt best een A4'tje aangezien we veel |
287 |
|
|
informatie zullen neerschrijven. Hier is er een afbeelding van de auteur zijn |
288 |
|
|
cheatsheet waarop al bovenstaande commando's staan. Probeer dezelfde layout te |
289 |
|
|
gebruiken zodat we alles op 1 papiertje kunnen plaatsen. |
290 |
|
|
</p> |
291 |
|
|
|
292 |
swift |
1.4 |
<figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-first.png" short="Eerste deel van de cheatsheet" caption="Cheatsheet"/> |
293 |
swift |
1.1 |
|
294 |
|
|
</body> |
295 |
|
|
|
296 |
|
|
</section> |
297 |
|
|
<section> |
298 |
|
|
<title>Vanalles van vi</title> |
299 |
|
|
|
300 |
|
|
<body> |
301 |
|
|
<p> |
302 |
|
|
Laten we verder doen. In commando-mode kan je naar een specifieke regel |
303 |
|
|
springen door <c>G</c> te typen. Om naar de allereerste regel te gaan, type |
304 |
|
|
<c>1G</c>. Merk op dat de <c>G</c> een hoofdletter is. |
305 |
|
|
</p> |
306 |
|
|
<p> |
307 |
|
|
Indien je naar de eerstvolgende string wil gaan die voldoet aan een bepaalde |
308 |
|
|
reguliere expressie, type <c>/<regexp></c> en druk op <c>enter</c>. |
309 |
|
|
Vervang <regexp> met de reguliere expressie waarnaar je op zoek bent. |
310 |
|
|
Indien je niet weet hoe je regexps moet ingeven moet je niet panikeren -- |
311 |
|
|
<c>/foo</c> zal zoeken naar de eerstvolgende "foo". Het enige waarvoor je |
312 |
swift |
1.6 |
moet oppassen is het zoeken naar een van de volgende karakters: <c>^.$\</c>. |
313 |
swift |
1.1 |
Deze moet je escapen (een backslash voor plaatsen). Bijvoorbeeld |
314 |
swift |
1.6 |
<c>/foo\.gif</c> zal zoeken naar de eerste <c>foo.gif</c> vanaf de positie dat |
315 |
swift |
1.1 |
je cursor nu staat. |
316 |
|
|
</p> |
317 |
|
|
<p> |
318 |
|
|
Om de voorwaardse zoektocht te herhalen, druk op <c>n</c>. Om achterwaarts |
319 |
|
|
te zoeken, type <c>N</c>. Zoals altijd is het belangrijk dat je deze zaken nu |
320 |
|
|
test. Je kan tevens <c>//</c> typen om de laatste zoekopdracht te herhalen. |
321 |
|
|
</p> |
322 |
|
|
|
323 |
|
|
</body> |
324 |
|
|
</section> |
325 |
|
|
</chapter> |
326 |
|
|
<chapter> |
327 |
|
|
<title>Opslaan en Aanpassen</title> |
328 |
|
|
<section> |
329 |
|
|
<title>Opslaan en Opslaan Als...</title> |
330 |
|
|
<body> |
331 |
|
|
<p> |
332 |
swift |
1.6 |
We hebben gezien hoe je het <c>ex</c> commando <c>:q</c> kan gebruiken om vi af |
333 |
swift |
1.1 |
te sluiten. Indien je je aanpassingen wil opslaan, type <c>:w</c>. Indien je je |
334 |
|
|
aanpassingen in een ander bestand wil opslaan, type <c>:w bestandsnaam</c> om |
335 |
|
|
deze op te slaan als <e>bestandsnaam</e>. Indien je wil opslaan en afsluiten, |
336 |
|
|
type <c>:x</c> of <c>:wq</c>. |
337 |
|
|
</p> |
338 |
|
|
<p> |
339 |
|
|
In vim (en andere geavanceerde vi-editors, zoals elvis) kan je meerdere buffers |
340 |
|
|
open staan hebben. Om een bestand in een nieuwe window te openen, type <c>:sp |
341 |
|
|
bestandsnaam</c>. <e>bestandsnaam</e> zal klaar staan om aan te passen in een |
342 |
|
|
split window. Om tussen deze windows te switchen type je <c><CTRL>-w |
343 |
|
|
<CTRL>-w</c> (dus 2 keer na elkaar control-w). De commando's <c>:q</c>, |
344 |
|
|
<c>:q!</c> en <c>:x</c> werken enkel op de actieve window. |
345 |
|
|
</p> |
346 |
|
|
</body> |
347 |
|
|
</section> |
348 |
|
|
|
349 |
|
|
<section> |
350 |
|
|
<title>Eenvoudige aanpassingen</title> |
351 |
|
|
<body> |
352 |
|
|
<p> |
353 |
|
|
Nu is het tijd om enkele eenvoudige edit-commando's te leren. Ik noem ze simpel |
354 |
|
|
omdat de commando's je in commando-mode houden. De meer complexe commando's |
355 |
|
|
zullen je vanzelf in insert-mode steken -- een modus waardoor je rechtstreeks |
356 |
|
|
het bestand kan aanpassen. Deze zullen we later behandelen. |
357 |
|
|
</p> |
358 |
|
|
|
359 |
|
|
<p> |
360 |
|
|
Ga met je cursor over enkele karakters en druk <c>x</c> in. Je zal zien dat |
361 |
|
|
<c>x</c> het karakter onder de cursor verwijdert. Ga nu naar het midden van een |
362 |
|
|
paragraaf en druk <c>J</c>. Je zal zien dat <c>J</c> de volgende paragraaf aan |
363 |
|
|
het eind van de huidige paragraaf plakt. Druk nu eens <c>r</c> terwijl je met |
364 |
|
|
je cursor op een karakter staat, en type een nieuw karakter in. Je zal zien dat |
365 |
|
|
het karakter vervangen wordt met het nieuwe karakter. Ga nu naar een bepaalde |
366 |
|
|
regel en druk <c>dd</c>. Je zal zien dat deze de huidige regel verwijdert. |
367 |
|
|
</p> |
368 |
|
|
|
369 |
|
|
</body> |
370 |
|
|
</section> |
371 |
|
|
<section> |
372 |
|
|
<title>Herhalen en Verwijderen</title> |
373 |
|
|
<body> |
374 |
|
|
<p> |
375 |
|
|
Je kan eender welk commando herhaaldelijk uitvoeren door de <c>.</c> in te |
376 |
|
|
drukken. Indien je experimenteert zal je merken dat <c>dd...</c> 4 regels zal |
377 |
|
|
verwijderen, en <c>J......</c> zal 4 regels aan elkaar hangen. Uiteraard heeft |
378 |
|
|
vi een snellere manier voor deze zaken :) |
379 |
|
|
</p> |
380 |
|
|
<p> |
381 |
|
|
Om tekst te verwijderen kan je tevens het <c>d</c> commando gevolgd door een |
382 |
|
|
navigatiecommando uitvoeren. Bijvoorbeeld <c>dw</c> zal alle tekst verwijderen |
383 |
|
|
vanaf de huidige positie tot aan het begin van het bestand; <c>d)</c> zal alle |
384 |
|
|
tekst verwijderen tot aan het eind van de volgende zin, en <c>d}</c> zal de |
385 |
|
|
rest van de paragraaf verwijderen. Experimenteer et het <c>d</c> commando en de |
386 |
|
|
andere edit-commando's totdat je ze allemaal onder de knie hebt. |
387 |
|
|
</p> |
388 |
|
|
</body> |
389 |
|
|
</section> |
390 |
|
|
<section> |
391 |
|
|
<title>Ongedaan maken</title> |
392 |
|
|
<body> |
393 |
|
|
<p> |
394 |
|
|
Nu dat we bezig zijn met verwijdercommando's is het een goed moment om te leren |
395 |
|
|
hoe je aanpassingen ongedaan maakt. Door <c>u</c> te drukken kan je je laatste |
396 |
|
|
commando ongedaan maken. Moderne versies van vi, zoals vim, laten je toe om |
397 |
|
|
meerdere commando's ongedaan te maken door herhaaldelijk op <c>u</c> te |
398 |
|
|
drukken. Probeer ze zeker uit. |
399 |
|
|
</p> |
400 |
|
|
</body> |
401 |
|
|
</section> |
402 |
|
|
|
403 |
|
|
<section> |
404 |
|
|
<title>De cheatsheet updaten</title> |
405 |
|
|
<body> |
406 |
|
|
<p> |
407 |
|
|
Het is tijd om de cheatsheet up te daten. Na het toevoegen van alle geziene |
408 |
|
|
commando's zal je papier er als volgt kunnen uitzien: |
409 |
|
|
</p> |
410 |
|
|
|
411 |
swift |
1.4 |
<figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-edit.png" short="Cheat sheet" caption="Cheatsheet met editing-commando's"/> |
412 |
swift |
1.1 |
|
413 |
|
|
</body> |
414 |
|
|
</section> |
415 |
|
|
</chapter> |
416 |
|
|
<chapter> |
417 |
|
|
<title>Insert mode</title> |
418 |
|
|
<section> |
419 |
|
|
<title>Insert mode</title> |
420 |
|
|
|
421 |
|
|
<body> |
422 |
|
|
<p> |
423 |
|
|
Tot nu toe hebben we geleerd om met vi te navigeren, bestanden te manipuleren, |
424 |
|
|
en basis editing commando's uit te voeren. Ik heb je echter nog niet uitgelegd |
425 |
|
|
hoe je gewoon tekst in je bestand kan zetten! Dit is met opzet, aangezien vi's |
426 |
|
|
insert mode ietswat ingewikkeld is in het begin. Maar eenmaal je gewend bent |
427 |
|
|
met deze modus zal je zijn complexiteit (en flexibiliteit) zeker waarderen. |
428 |
|
|
</p> |
429 |
|
|
<p> |
430 |
|
|
In vi insert modus kan je tekst aanpassen en invoegen zoals je bij de meeste |
431 |
|
|
andere editors kan doen. Eenmaal je je aanpassingen gemaakt hebt kan je escape |
432 |
|
|
drukken om terug te keren naar commandomodus. Je kan naar insert modus gaan |
433 |
|
|
door <c>i</c> of <c>a</c> in te drukken. Indien je <c>i</c> drukt zal je tekst |
434 |
|
|
voor het geselecteerde karakter komen, terwijl dat bij <c>a</c> erachter is. |
435 |
|
|
Je kan dit eenvoudig onthouden door <e>insert</e> respectievelijk <e>append</e> |
436 |
|
|
te denken. Vergeet niet om <c><Esc></c> te drukken om terug te keren naar |
437 |
|
|
de commando modus. |
438 |
|
|
</p> |
439 |
|
|
</body> |
440 |
|
|
</section> |
441 |
|
|
<section> |
442 |
|
|
<title>Voordelen van insert mode</title> |
443 |
|
|
<body> |
444 |
|
|
<p> |
445 |
|
|
Probeer de <c>i</c> en <c>a</c> commando's uit. Type wat tekst en ga terug naar |
446 |
|
|
de commando mode. Druk op <c><Enter></c> nadat je <c>a</c> of <c>i</c> |
447 |
|
|
getypt hebt en let op wat er gebeurt. Probeer de pijltjes van je keyboard en de |
448 |
|
|
<c><DEL></c> toets om te weten te komen hoe de insertmodus werkt. Door de |
449 |
|
|
pijltjestoetsen en delete-toets te gebruiken kan je verschillende edit-stappen |
450 |
|
|
uitvoeren zonder telkens de insertmode te verlaten. |
451 |
|
|
</p> |
452 |
|
|
</body> |
453 |
|
|
</section> |
454 |
|
|
<section> |
455 |
|
|
<title>Insert opties</title> |
456 |
|
|
<body> |
457 |
|
|
<p> |
458 |
|
|
Hier zijn er enkele andere interessante methoden om in insertmode te geraken. |
459 |
|
|
Druk <c>A</c> om aan het <e>eind</e> van de regel te starten. <c>I</c> zal dan |
460 |
|
|
aan het begin van de regel starten. Druk <c>o</c> om een nieuwe, blanco regel |
461 |
|
|
te creeren net onder de huidige regel, en <c>O</c> om een blanco regel boven de |
462 |
|
|
huidige regel te maken. Om de ganse regel met een nieuwe regel te vervangen, |
463 |
|
|
druk <c>cc</c>. Om alles vanaf de huidige positie tot het eind van de regel te |
464 |
|
|
vervangen, druk <c>c$</c>. Om alles vanaf de huidige positie tot het begin van |
465 |
|
|
de regel te vervangen, druk <c>c0</c>. |
466 |
|
|
</p> |
467 |
|
|
<p> |
468 |
|
|
Al bovenstaande commando's zullen je in insert-modus plaatsen. Druk op escape |
469 |
|
|
om de insertmodus te verlaten. |
470 |
|
|
</p> |
471 |
|
|
|
472 |
|
|
</body> |
473 |
|
|
</section> |
474 |
|
|
<section> |
475 |
|
|
<title>Tekst aanpassen</title> |
476 |
|
|
<body> |
477 |
|
|
<p> |
478 |
|
|
We hebben het <c>c</c> (change) commando al een beetje gebruikt in de |
479 |
|
|
commando's <c>cc, c0, c$</c>. <c>cc</c> is een speciaal commando, gelijkaardig |
480 |
|
|
aan <c>dd</c>. De andere commando's zijn voorbeelden van het gebruiken van het |
481 |
|
|
<c>c</c> commando met navigatiecommando's. Het is dus geheel gelijkaardig aan |
482 |
|
|
het <c>d</c> commando, behalve dat het de gebruiker daarna in insertmodus |
483 |
|
|
plaatst. Probeer enkele commando's te combineren en test ze uit op je bestand |
484 |
|
|
(hint: <c>cW</c>, <c>ce</c>, <c>(</c>.) |
485 |
|
|
</p> |
486 |
|
|
|
487 |
|
|
</body> |
488 |
|
|
</section> |
489 |
|
|
</chapter> |
490 |
|
|
<chapter> |
491 |
|
|
<title>Combinatie Commandos</title> |
492 |
|
|
<section> |
493 |
|
|
<title>Combinatie Commandos</title> |
494 |
|
|
<body> |
495 |
|
|
<p> |
496 |
|
|
Vi wordt pas <e>enorm</e> krachtig indien je begint met combinaties te |
497 |
|
|
creeeren, zoals <c>d{</c> en <c>cw</c>. Daarbij kan je een nummer plaatsen, |
498 |
|
|
zoals <c>3w</c>, waardoor vi 3 woorden naar rechts zal springen. Hier zijn nog |
499 |
|
|
enkele combinatie-voorbeeldcommando's: <c>12b</c>, <c>4j</c>. |
500 |
|
|
</p> |
501 |
|
|
<p> |
502 |
|
|
Behalve het gebruik van nummer-navigatie commando's laat vi tevens toe <c>d</c> |
503 |
|
|
en <c>c</c> te combineren met nummers of navigatiecommando's. Dus <c>d3w</c> |
504 |
|
|
zal de volgende 3 woorden verwijderen, <c>d2j</c> zal de huidige en de volgende |
505 |
|
|
2 regels verwijderen enz. Test verschillende <c>c,d</c>-combinaties uit. |
506 |
|
|
Eenmaal je deze onder de knie hebt zal je enorm snel met vi bestanden kunnen |
507 |
|
|
manipuleren. |
508 |
|
|
</p> |
509 |
|
|
|
510 |
|
|
</body> |
511 |
|
|
</section> |
512 |
|
|
<section> |
513 |
|
|
<title>De cheatsheet updaten</title> |
514 |
|
|
<body> |
515 |
|
|
<p> |
516 |
|
|
Het is weer tijd om de cheatsheet up te daten. De mijne ziet er momenteel als |
517 |
|
|
volgt uit: |
518 |
|
|
</p> |
519 |
swift |
1.6 |
|
520 |
|
|
<figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-compound.png" short="Cheat Sheet" caption="Cheatsheet met combinaties"/> |
521 |
swift |
1.1 |
|
522 |
|
|
</body> |
523 |
|
|
</section> |
524 |
|
|
<section> |
525 |
|
|
<title>Productivity features</title> |
526 |
|
|
|
527 |
|
|
<body> |
528 |
|
|
<p> |
529 |
|
|
Tot nu toe hebben we gezien hoe je navigeert, opslaat en afsluit, hoe je |
530 |
|
|
eenvoudige aanpassingen en verwijdercommando's ingeeft, en hoe je de insert |
531 |
|
|
modus moet gebruiken. Met alle zaken op de cheatsheet moet je nu al gemakkelijk |
532 |
|
|
bijna alle gewenste taken met vi kunnen afhandelen. |
533 |
|
|
</p> |
534 |
|
|
<p> |
535 |
|
|
Vi heeft echter nog heel wat meer in zijn mars. In deze sectie zal ik je |
536 |
|
|
uitleggen hoe je knipt, kopieert, plakt, zoekt en vervangt, en hoe je de |
537 |
|
|
<e>autoindent</e> gebruikt. Deze maken het leven met vi heel wat leuker. |
538 |
|
|
</p> |
539 |
|
|
|
540 |
|
|
</body> |
541 |
|
|
</section> |
542 |
|
|
<section> |
543 |
|
|
<title>Visuele modus</title> |
544 |
|
|
<body> |
545 |
|
|
<p> |
546 |
|
|
De beste manier om te knippen, kopieren en plakken is met de visuele modus, een |
547 |
|
|
speciale modus die toegevoegd is aan moderne versies van vi, zoals vim. Het is |
548 |
|
|
een soort van selecteermodus. Eenmaal de tekst geselecteert is kan je ze |
549 |
|
|
knippen, kopieren en plakken. Indien je gvim gebruikt kan je dat uiteraard door |
550 |
|
|
gewoonweg met je muis te werken. |
551 |
|
|
</p> |
552 |
swift |
1.4 |
<figure link="http://www.ibiblio.org/web-gentoo/images/vihighlight.png" short="Highlighted text" caption="VIM met geselecteerde tekst"/> |
553 |
swift |
1.1 |
|
554 |
|
|
</body> |
555 |
|
|
</section> |
556 |
|
|
<section> |
557 |
|
|
<title></title> |
558 |
|
|
<body> |
559 |
|
|
|
560 |
|
|
<p> |
561 |
|
|
Daarbij kan je tevens in visuele mode gaan door <c>v</c> te drukken (dit is |
562 |
|
|
trouwens de enige manier indien je met vim werkt). Door daarna met de cursor te |
563 |
|
|
navigeren zal je delen van je tekst selecteren. Eenmaal geselecteert zijn we |
564 |
|
|
klaar om te knippen of kopieren. |
565 |
|
|
</p> |
566 |
|
|
|
567 |
|
|
<p> |
568 |
|
|
Indien je de tekst wil kopieren, druk <c>y</c> (<e>yank</e>). Indien je de |
569 |
|
|
tekst knipt, druk <c>d</c>. Je zal teruggesmeten worden naar commandomodus. Ga |
570 |
|
|
nu naar de positie waar je de tekst in wil voegen, en druk <c>P</c> om de tekst |
571 |
|
|
na de cursor te plaatsen, of <c>p</c> om de tekst voor de cursor te plaatsen. |
572 |
|
|
Voila, de knippen/kopieren/plakken is gedaan. Probeer verschillende operaties |
573 |
|
|
uit alvorens je verder gaat. |
574 |
|
|
</p> |
575 |
|
|
|
576 |
|
|
</body> |
577 |
|
|
</section> |
578 |
|
|
<section> |
579 |
|
|
<title>Tekst Vervangen</title> |
580 |
|
|
<body> |
581 |
|
|
<p> |
582 |
|
|
Om bepaalde expressies van tekst te vervangen gebruiken we de <e>ex</e> modus. |
583 |
|
|
Indien je de eerstvolgende expressie op de huidige lijn wil vervangen, type |
584 |
|
|
<c>:s/<regexp>/<vervangtekst>/</c> en druk op enter. Hier is |
585 |
|
|
<regexp> de expressie die je wil vervangen en <vervangtekst> de |
586 |
|
|
tekst waarmee ze vervangen moet worden. Om alle expressies op de huidige lijn |
587 |
|
|
te vervangen, gebruik <c>:s/<regexp>/<vervangtekst>/g</c> en druk |
588 |
|
|
op enter. Om alle voorkomende expressies in je ganse tekst te vervangen, |
589 |
|
|
gebruik <c>:%s/<regexp>/<vervangtekst>/g</c>. Indien je wil dat vi |
590 |
|
|
bij elke vervanging vraagt of je wel wil vervangen, zet dan een extra <c>c</c> |
591 |
|
|
achteraan: <c>:%s/<regexp>/<vervangtekst>/gc</c>. |
592 |
|
|
</p> |
593 |
|
|
|
594 |
|
|
</body> |
595 |
|
|
</section> |
596 |
|
|
<section> |
597 |
|
|
<title>Inspringen</title> |
598 |
|
|
<body> |
599 |
|
|
<p> |
600 |
|
|
vi ondersteunt automatisch inspringen, wat zeer handig is indien je broncode |
601 |
|
|
aan het aanpassen bent. De meeste moderne implementaties van vi (zoals vim) |
602 |
|
|
zullen vanzelf inspringen indien je broncodebestanden aan het aanpassen bent. |
603 |
|
|
Indien deze ingeschakeld is kan je <c><CTRL>-d</c> gebruiken om 1 niveau |
604 |
|
|
in te springen, en <c><CTRL>-t</c> om 1 niveau lager te gaan. Indien |
605 |
|
|
autoindent niet vanzelf aanstaat kan je deze manueel activeren door <e>:set |
606 |
|
|
autoindent</e> in te geven in <e>ex</e>-modus. Je kan tevens aan vi vertellen |
607 |
|
|
dat je tab-afstand anders moet zijn door <c>:set tabstop</c> te gebruiken. |
608 |
|
|
<c>:set tabstop=4</c> is zeer populair. |
609 |
|
|
</p> |
610 |
|
|
|
611 |
|
|
</body> |
612 |
|
|
</section> |
613 |
|
|
<section> |
614 |
|
|
<title>Ons finale cheatsheet</title> |
615 |
|
|
<body> |
616 |
|
|
<p> |
617 |
|
|
Voila, we zitten aan het eind van onze tutorial. Na het toevoegen van alle |
618 |
|
|
geavanceerde commando's zou de cheatsheet er als volgt uit kunnen zien: |
619 |
|
|
</p> |
620 |
swift |
1.4 |
<figure link="http://www.ibiblio.org/web-gentoo/images/vicheat-final.png" short="Cheat Sheet" caption="Finale cheatsheet"/> |
621 |
swift |
1.1 |
|
622 |
|
|
|
623 |
|
|
<p> |
624 |
|
|
Hou dit papiertje in de buurt, en gebruik vi om je bestanden en e-mails te |
625 |
|
|
creeren of aan te passen. Gebruik de cheatsheet wanneer je ze nodig hebt; na |
626 |
|
|
een weekje of zo zal je bijna alle commando's doorhebben en zal je |
627 |
|
|
productiviteit de lucht in schieten. |
628 |
|
|
</p> |
629 |
|
|
|
630 |
|
|
</body> |
631 |
|
|
</section> |
632 |
|
|
<section> |
633 |
|
|
<title>Resources</title> |
634 |
|
|
<body> |
635 |
|
|
<p> |
636 |
|
|
Hier zijn er enkele resources die je handig kan vinden indien je nog meer wil |
637 |
|
|
te weten komen over vi: |
638 |
|
|
</p> |
639 |
|
|
<ul> |
640 |
|
|
<li><uri link="http://www.thomer.com/thomer/vi/vi.html">The vi Lovers Home |
641 |
|
|
Page</uri>, een excellente resource.</li> |
642 |
|
|
<li><uri link="http://www.vim.org">The vim homepage</uri> |
643 |
|
|
, de plaats voor alles wat vim aanbelangt</li> |
644 |
|
|
<li>Indien je op zoek bent naar een goed boek, dan is <uri link="http://www.oreilly.com/catalog/vi6/">Learning the vi Editor, 6th Edition</uri> een excellente |
645 |
|
|
keuze, ze omschrijft nl tevens de vi-klonen zoals vim en elvis.</li> |
646 |
|
|
</ul> |
647 |
|
|
</body> |
648 |
|
|
</section> |
649 |
blubber |
1.5 |
|
650 |
|
|
<section> |
651 |
|
|
<title>Over dit document</title> |
652 |
|
|
<body> |
653 |
|
|
<p>De originele versie van dit document was eerst gepubliceerd op IBM |
654 |
|
|
DeveloperWorks, en is eigendom van Westtech Information Services. Dit document |
655 |
|
|
is een aangepaste versie van het origineel, en bevat enkele verbeteringen |
656 |
|
|
gemaakt door het Gentoo Linux documentatie team.</p> |
657 |
|
|
</body> |
658 |
|
|
</section> |
659 |
|
|
|
660 |
swift |
1.1 |
</chapter> |
661 |
|
|
</guide> |