blob: bb8787aaafe7276ce04498ae67f49496955dac31 [file] [log] [blame]
Antonio Giovanni Colombob1004772024-12-15 21:36:55 +01001# Benvenuto alla guida introduttiva VIM
2
3Vim è un editor molto potente, che ha molti comandi, troppi per poterli
4spiegare in una guida introduttiva come questa. Questa guida introduttiva è
5stata preparata per descrivere i comandi che servono a poter usare facilmente
6Vim come editor di uso generale. È IMPORTANTE ricordarsi che questa guida è
7stata preparata per apprendere facendo pratica. Ciò significa che occorre fare
8gli esercizi, per poter apprendere davvero. Limitandosi a leggere il testo, si
9finirebbe per dimenticare presto le cose più importanti!
10
11Per iniziare, assicuratevi che il tasto di blocco maiuscole NON sia premuto e
12premete ripetutamente il tasto `j`{normal} per muovere il cursore, finché la
13Lezione 0 riempia completamente lo schermo.
14
15# Lezione 0
16
17NOTA: I comandi dati durante le lezioni modificheranno il testo, ma le
18modifiche da voi effettuate non saranno salvate. Quindi non preoccupatevi
19se fate pasticci; ricordate che premendo il tasto [<Esc>](<Esc>) e poi
20[u](u) verrà annullata l'ultima modifica.
21
22Questa guida è interattiva, e ci sono alcune cose che dovreste sapere.
23- Battete [<Invio>](<Enter>) sui link [come questo](holy-grail ) per aprire la parte di help relativa.
24- O semplicemente battete [K](K) su una parola qualsiasi per trovare la relativa
25 documentazione!
26- Talvolta vi viene richiesto di modificare righe di testo come
27questa qui
28Una volta fatte correttamente le modifiche richieste, il segno ✗ a sinistra
29della riga diverrà ✓. Penso iniziate a intuire quanto Vim sia bello. ;)
30Altre volte vi viene richiesto di eseguire un comando (vedere più sotto):
31~~~ cmd
32 :help <Invio>
33~~~
34o di battere una sequenza di tasti
35~~~ normal
36 <Esc>0f<Spazio>d3wP$P
37~~~
38
39I testi racchiusi tra i segni '<' e '>' (come `<Enter>`{normal}) indicano un tasto
40da premere, invece di un testo da immettere.
41
42Ora, avanziamo verso la prossima Lezione (usa il tasto `j`{normal} per scorrere
43verso il basso).
44
45# Lezione 1.1: SPOSTARE IL CURSORE
46
47** Per spostare il cursore, premete i tasti `h`, `j`, `k`, `l` come indicato.
48
49
50 k Nota: Il tasto `h`{normal} è a sinistra e sposta a sinistra.
51 ← h l → Il tasto `l`{normal} è a destra e sposta a destra.
52 j Il tasto `j`{normal} assomiglia a una freccia in giù.
53
54
55 1. Muovete il cursore sullo schermo, finché vi sentite a vostro agio.
56
57 2. Tenete schiacciato il tasto "giù" (`j`{normal}) per far ripetere l'azione.
58 Adesso sapete come andare alla prossima Lezione.
59
60 3. Usando il tasto "giù", passate alla Lezione 1.2.
61
62NOTA: Se non siete sicuri di aver usato i tasti giusti, premete <Esc> per
63 tornare al modo Normal. Poi immettete ancora il comando che volevate.
64
65NOTA: I tasti del cursore hanno lo steso effetto. Ma usando hjkl sarete in grado
66 di spostarvi molto più velocemente, dopo che vi siete abituati. Davvero!
67
68# Lezione 1.2: USCIRE DA VIM
69
70!! NOTA: Prima di eseguire i passi elencati sotto,
71leggetevi l'intera Lezione !!
72
73 1. Premete il tasto <Esc> (per accertarvi di essere nel modo Normal).
74
75 2. Battete:
76
77 `:q!`{vim} `<Invio>`{normal}.
78
79 Così si esce dall'editor, SCARTANDO qualsiasi modifica fatta.
80
81 3. Aprite vim e tornate qui eseguendo il comando che vi ha portato a questa
82 guida. Potrebbe essere:
83
84 :Tutor <Invio>
85
86 4. Se siete sicuri di aver memorizzato questi passi, eseguite i passi
87 dall'1 al 3 per uscire dall'editor e rientrarvi.
88
89NOTA: [:q!](:q) <Invio> SCARTA qualsiasi modifica fatta. Tra qualche Lezione
90 vedremo come salvare le modifiche su un file.
91
92 5. Spostatevi in giù col cursore, alla Lezione 1.3.
93
94# Lezione 1.3: MODIFICARE TESTO - CANCELLARE
95
96** Premete `x`{normal} per cancellare il carattere sotto il cursore. **
97
98 1. Portatevi col cursore alla riga qui sotto marcata ✗.
99
100 2. Per correggere, spostate il cursore posizionandolo sopra il
101 carattere da cancellare.
102
103 3. Premete [il tasto x](x) per cancellare il carattere di troppo.
104
105 4. Ripetete i passi da 2 a 4 finché la frase è corretta.
106
107La mmucca saltòò soppra lla luuna.
108
109 5. Ora che la riga è corretta, passate alla Lezione 1.4.
110
111NOTA: Nel seguire questa guida, non tentate di memorizzare, è
112 meglio imparare facendo pratica.
113
114# Lezione 1.4: EDITARE UN TESTO: INSERIMENTI
115
116** Premete `i`{normal} per inserire del testo. **
117
118 1. Portatevi col cursore alla prima riga sotto, marcata ✗.
119
120 2. Per rendere la riga uguale alla seguente, spostate il cursore fino
121 a sovrapporvi al print carattere DOPO il testo che va inserito.
122
123 3. Premete `i`{normal} e immettete le aggiunte richieste.
124
125 4. Dopo aver corretto ogni siingolo errore premete `<Esc>`{normal}
126 per ritornare al modo Normal.
127 Ripetete i passi da 2 a 4 per correggere la frase.
128
129Un po' testo mca questa .
130Un po' di testo manca da questa riga.
131
132 5. Quando vi sentite a vostro agio nell'inserire del testo, passate alla
133 Lezione 1.5.
134
135# Lezione 1.5: EDITARE UN TESTO: AGGIUNGERE A FINE RIGA
136
137** Premete `A`{normal} per aggiungere del testo a fine riga. **
138
139 1. Portatevi col cursore alla prima riga sotto marcata ✗.
140 Non importa su che carattere sta il cursore nella riga.
141
142 2. Premete [A](A) e aggiungete quanto manca.
143
144 3. Una volta finito di aggiungere testo, premete `<Esc>`{normal}
145 per ritornare al modo Normal.
146
147 4. Portatevi col cursore alla seconda riga marcata ✗ e ripetete
148 i passi 2 e 3 per correggere la frase.
149
150Un po' di testo manca da que
151Un po' di testo manca da questa riga.
152Un po' di testo man
153Un po' di testo manca anche qui.
154
155 5. Quando vi sentite a vostro agio nell'aggiungere del testo in fondo
156 alla riga, passate alla Lezione 1.6.
157
158# Lezione 1.6: EDITARE UN FILE
159
160** Usate `:wq`{vim} per salvare un file e uscire da Vim. **
161
162!! NOTA: Prima di eseguire i passi elencati sotto,
163leggetevi l'intera Lezione !!
164
165 1. Uscite da questa guida come avete fatto nella Lezione 1.2: `:q!`{vim}
166 O, se avete accesso a un altro terminale, digitate quel che segue in
167 quel terminale.
168
169 2. Dal prompt della shell battete questo comando:
170~~~ sh
171 $ vim tutor
172~~~
173 'vim' è il comando che fa partire l'editor Vim, 'tutor' è il nome
174 del file che desiderate editare. Usate un file che siete in grado di
175 modificare.
176
177 3. Inserite e cancellate del testo, come visto nella Lezione precedente.
178
179 4. Salvate il file con le modifiche da voi fatte e uscite da Vim immettendo:
180~~~ cmd
181 :wq
182~~~
183
184 Notate che occorre premete `<Invio>` perché il comando sia eseguito.
185
186 5. Se siete usciti dalla guida Vim nel Passo 1, fate ripartire la guida Vim
187 e posizionatevi sul sommario qui sotto.
188
189 6. Dopo aver letto e capito tutti i passi visti qui sopra: metteteli in pratica.
190
191# Lezione 1 SOMMARIO
192
193 1. Il cursore su muove usando i tasti freccia o i tasti h j k l.
194 h (sinistra) j (giù) k (sù) l (destra)
195
196 2. Per far partire Vim dal prompt della shell immettete:
197
198~~~ sh
199 $ vim NOME-DI-FILE
200~~~
201
202 3. Per uscire da Vim battete: `<Esc>`{normal} `:q!`{vim} `<Invio>`{normal}
203 per buttar via tutte le modifiche.
204 OPPURE battete: `<Esc>`{normal} `:wq`{vim} `<Invio>`{normal}
205 per salvare le modifiche fatte.
206
207 4. Per cancellare il carattere sotto il cursore battete: `x`{normal}
208
209 5. Per inserire o aggiungere in fondo del testo battete:
210 `i`{normal} inserire testo `<Esc>`{normal} inserire prima del cursore.
211 `A`{normal} aggiungere testo `<Esc>`{normal} aggiungere a fine riga.
212
213NOTA: Premendo `<Esc>`{normal} si entra nel modo Normal e, se del caso, si
214 annulla un comando parzialmente immesso, che non volete eseguire.
215
216Ora continuate con la Lezione 2.
217
218# Lezione 2.1: COMANDI PER CANCELLARE
219
220** Battete `dw`{normal} per cancellare una parola. **
221
222 1. Premete `<Esc>`{normal} per assicurarvi di essere nel modo Normal.
223
224 2. Portatevi col cursore alla riga qui sotto marcata ✗.
225
226 3. Portatevi col cursore all'inizio di una parola che va cancellata
227
228 4. Battete [d](d)[w](w) per cancellare la parola.
229
230Ci sono penna alcune parole matita che non appartengono carta a questa frase.
231
232 5. Ripetete i passi 3 e 4 finché la frase è corretta e andate alla Lezione 2.2.
233
234# Lezione 2.2: ANCORA COMANDI PER CANCELLARE
235
236** Battete `d$`{normal} per cancellare fino a fine riga. **
237
238 1. Premete `<Esc>`{normal} per assicurarvi di essere nel modo Normal.
239
240 2. Portatevi col cursore alla riga qui sotto marcata ✗.
241
242 3. Portatevi col cursore alla fine della riga corretta (DOPO il primo . ).
243
244 4. Battete `d$`{normal} per cancellare fino a fine riga.
245
246Qualcuno ha scritto due volte la fine di questa riga. fine di questa riga.
247
248 5. Passate alla Lezione 2.3 per capire cosa sta accadendo.
249
250# Lezione 2.3: OPERATORI E MOVIMENTI
251
252Molti comandi che modificano del testo sono composti da un [operatore](operator) e
253da un [movimento](navigation).
254Il formato di un comando delete con l'operatore [d](d) è il seguente:
255
256 d movimento
257
258 Dove:
259 d - è l'operatore per "delete" (cancella)
260 movimento - indice dove l'operatore agisce (vedere sotto).
261
262 Una breve lista di movimenti:
263 [w](w) - fino a inizio prossima parola, ESCLUSO il carattere iniziale.
264 [e](e) - fino alla fine della parola corrente, INCLUSO l'ultimo carattere.
265 [$]($) - fino a fine riga, INCLUSO l'ultimo carattere.
266
267 Quindi battendo `de`{normal} cancella dalla posizione del cursore a fine parola.
268
269NOTA: Premendo solo il carattere di movimento in modo Normal, senza un operatore
270 sposterà il cursore come specificato.
271
272# Lezione 2.4: USARE UN CONTATORE PER UN MOVIMENTO
273
274** Un numero prima di un movimento lo ripete altrettante volte. **
275
276 1. Portatevi col cursore all'inizio della riga qui sotto, marcata ✓ .
277
278 2. Battete `2w`{normal} per spostare il cursore due parole in avanti.
279
280 3. Battete `3e`{normal} per spostare il cursore alla fine della terza parola
281 in avanti.
282
283 4. Battete `0`{normal} ([zero](0)) per andare all'inizio della riga.
284
285 5. Ripetete i passi 2 e 3 con numeri differenti.
286
287Questa è solo una riga con delle parole per imparare a muovere il cursore.
288
289 6. Passate alla Lezione 2.5.
290
291# Lezione 2.5: USARE UN CONTATORE PER CANCELLARE DI PIÙ
292
293** Un numero prima di un operatore lo ripete altrettante volte. **
294
295Usando l'operatore delete con un movimento di quelli visti sopra, si può
296inserire un contatore prima del movimento, per cancellare di più
297 d numero movimento
298
299 1. Portatevi col cursore alla prima parola MAIUSCOLA sulla riga marcata ✗.
300
301 2. Battete `d2w`{normal} per cancellare le due parole MAIUSCOLE.
302
303 3. Ripetete i passi 1 e 2 con un contatore differente per cancellare tutte
304 le parole MAIUSCOLE consecutive, con un solo comando.
305
306Questa ABC DE riga FGHI JK LMN OP di parole è stata Q RS TUV pulita.
307
308# Lezione 2.6: AGIRE SU INTERE RIGHE
309
310** Battete `dd`{normal} per cancellare un'intera riga. **
311
312A causa della frequenza con cui capita di cancellare intere righe,
313chi ha progettato Vim ha deciso che sarebbe stato più semplice battere
314due volte la lettera d per cancellare una riga.
315
316 1. Portatevi col cursore alla seconda riga nella frase sotto.
317 2. Battete [dd](dd) per cancellare la riga.
318 3. Poi spostatevi alla riga numero 4.
319 4. Battete `2dd`{normal} per cancellare due righe.
320
3211) Le rose sono rosse,
3222) Il fango è divertente,
3233) Le viole sono blu,
3244) Io ho un'automobile,
3255) Gli orologi ti dicono l'ora,
3266) Dolce è lo zucchero,
3277) Ma non quanto sei tu.
328
329# Lezione 2.7: IL COMANDO UNDO
330
331** Premete `u`{normal} per annullare l'ultimo comando, `U`{normal} per farlo su un'intera riga. **
332
333 1. Portatevi col cursore alla riga qui sotto marcata e posizionatelo
334 sul primo errore.
335 2. Battete `x`{normal} per cancellare il primo carattere indesiderato.
336 3. Poi battete `u`{normal} per annullare l'ultimo comando eseguito.
337 4. Poi correggete tutti gli errori sulla riga con il comando `x`{normal}.
338 5. Poi battete `U`{normal} per riportare la riga a come era all'inizio.
339 6. Poi battete `u`{normal} più volte per annullare l'effetto di `U`{normal}
340 e i comandi precedenti.
341 7. Ora battete `<C-r>`{normal} (Control + R) più volte per rieseguire i comandi
342 (annullare gli annullamenti).
343
344Corregggete gli errori ssu queesta riga e rimettetelli usanndo undo.
345
346 8. Questi comandi sono molto utili. Potete procedere al Sommario della Lezione 2.
347
348# Lezione 2 SOMMARIO
349
350 1. Per cancellare dal cursore fino alla parola seguente battete: `dw`{normal}
351 2. Per cancellare dal cursore a fine riga battete: `d$`{normal}
352 3. Per cancellare un'intera riga battete: `dd`{normal}
353 4. Per ripetere un movimento metteteci davanti un numero: `2w`{normal}
354
355 5. Il formato di un comando di modifica è:
356 operatore [numero] movimento
357 dove:
358 operatore - indica l'azione, come [d](d) per cancellare (delete)
359 [numero] - è un contatore opzionale per ripetere il movimento
360 movimento - indica quanto esteso è il campo su cui operare, come:
361 [w](w) (parola, word),
362 [$]($) (fine della riga), etc.
363
364 6. Per spostarsi a inizio riga si usa uno zero: [0](0)
365
366 7. Per annullare azioni precedenti, battete: `u`{normal} (u minuscolo)
367 Per annullare tutte le modifiche a una riga, battete: `U`{normal} (U maiuscolo)
368 Per annullare gli annulli, battete: `<C-r>`{normal}
369
370# Lezione 3.1: IL COMANDO PUT
371
372** Battete `p`{normal} per inserire il testo appena cancellato dopo il cursore. **
373
374 1. Portatevi col cursore alla prima riga marcata ✓ sotto.
375
376 2. Battete `dd`{normal} per cancellare la riga e metterla in un registro Vim.
377
378 3. Portatevi col cursore alla riga c), SOPRA dove va messa la riga cancellata.
379
380 4. Battete `p`{normal} per inserire la riga sotto quella dove è il cursore.
381
382 5. Ripetete i passi da 2 a 4 per inserire tutte le righe nell'ordine corretto.
383
384d) Puoi impararla anche tu?
385b) Le viole sono blu,
386c) L'intelligenza si impara.
387a) Le rose sono rosse,
388
389# Lezione 3.2: IL COMANDO RIMPIAZZA
390
391** Battete `rx`{normal} per rimpiazzare il carattere sotto il cursore con x. **
392
393 1. Portatevi col cursore alla prima riga sotto marcata ✗.
394
395 2. Spostate il cursore fino a posizionarlo sopra al primo errore.
396
397 3. Battete `r`{normal} e poi il carattere "giusto".
398
399 4. Ripetete i passi 2 e 3 finché la prima riga è uguale alla seconda.
400
401Quwndo questa riga è stata imbessa, qualcuno ha premato i tasti sballiati!
402Quando questa riga è stata immessa, qualcuno ha premuto i tasti sbagliati!
403
404 5. Ora passate alla Lezione 3.3.
405
406NOTA: Non dimenticate è meglio imparare provando, e non memorizzando.
407
408# Lezione 3.3: L'OPERATORE CAMBIA `c`{normal}
409
410** Per cambiare fino alla fine di una parola, battete `ce`{normal}. **
411
412 1. Portatevi col cursore alla prima riga sotto marcata ✗.
413
414 2. Posizionate il cursore sulla prima "a" di "rana".
415
416 3. Battete `ce`{normal} e la parola corretta (in questo caso, battete "iga" ).
417
418 4. Premete `<Esc>`{normal} e posizionatevi sul successivo carattere da
419 cambiare.
420
421 5. Ripetete i passi 3 e 4 finché la prima frase è uguale alla seconda.
422
423Questa rana ha alcune papere che vanga cambiate uscita il comando change.
424Questa riga ha alcune parole che vanno cambiate usando il comando change.
425
426Notare che [c](c)e cancella la parole e vi mette in modo Insert.
427
428# Lezione 3.4: ALTRE MODIFICHE USANDO `c`{normal}
429
430** L'operatore cambia si usa con gli stessi movimenti di cancella. **
431
432 1. L'operatore cambia funziona come l'operatore cancella. Il formato è:
433
434 c [numero] movimento
435
436 2. I movimenti sono gli stessi, come `w`{normal} (parola) e `$`{normal} (fine-riga).
437
438 3. Spostatevi alla prima riga sotto marcata ✗.
439
440 4. Portatevi col cursore alla prima parola errata.
441
442 5. Battete `c$`{normal} e battete il resto della riga come la seguente
443 e premete `<Esc>`{normal}.
444
445La fine di questa riga ha bisogno di aiuto per divenire uguale alla seguente.
446La fine di questa riga va corretta usando il comando `c$`.
447
448NOTA: Si può usare il tasto Backspace per correggere errori di battitura.
449
450# Lezione 3 SOMMARIO
451
452 1. Per reinserire del testo che è stato appena cancellato, battete [p](p).
453 Questo comando mette il testo appena cancellato DOPO il cursore
454 (se una riga intera era stata cancellata, questa diverrà la riga SOTTO
455 il cursore).
456
457 2. Per rimpiazzare il carattere sotto il cursore, battete [r](r) e poi il
458 carattere che volete sostituire a quello.
459
460 3. Il comando [change](c) consente di cambiare il testo dalla posizione
461 del cursore fino a dove il movimento lo porta. Battete `ce`{normal}
462 per cambiare dalla posizione del cursore alla fine della parola, e
463 `c$`{normal} per cambiare il testo fino alla fine della riga.
464
465 4. Il formato per il comando che cambia del testo è:
466
467 c [numero] movimento
468
469Adesso passate alla prossima Lezione.
470
471# Lezione 4.1: POSIZIONE DEL CURSORE E STATO DEL FILE
472
473** Battete `<C-g>`{normal} per visualizzare la vostra posizione
474 all'interno del file, e lo stato del file.
475 Battete `G`{normal} per andare a una data riga nel file. **
476
477!! NOTA: Prima di eseguire i passi elencati sotto,
478leggetevi l'intera Lezione !!
479
480 1. Tenendo premuto il tasto `<Ctrl>`{normal} premete `g`{normal}. Questo si indica
481 scrivendo `<C-g>`{normal}. Un messaggio apparirà in fondo alla pagina
482 con il nome del file e la posizione all'interno del file. Memorizzate
483 il numero di riga per il Passo 3 sotto.
484
485NOTA: La posizione del cursore si può vedere nell'angolo in basso a destra
486 dello schermo. Ciò accada se è stata specificata l'opzione ['ruler']('ruler').
487 2. Battete [G](G) per portarvi in fondo al file.
488 Battete [gg](gg) per portarvi in cima al file.
489
490 3. Battete il numero della riga in cui eravate e poi `G`{normal}. In questo modo
491 tornerete alla riga in cui eravate al momento di battere `<C-g>`{normal}.
492
493 4. Se vi sentite sicuri del fatto vostro, eseguite i passi da 1 a 3.
494
495# Lezione 4.2: IL COMANDO CERCA
496
497** Battete `/`{normal} seguito da una frase, per cercare quella frase. **
498
499 1. In modo Normal battete il carattere `/`{normal}. Notate che il carattere
500 stesso e il cursore sono in fondo alla schermo, dove vengono anche
501 visualizzati i comandi che iniziano per `:`{normal}.
502
503 2. Ora battete 'errroore' `<Invio>`{normal}. Questa è la parola che volete
504 cercare.
505
506 3. Per cercare ancora la stessa frase, simply battete [n](n).
507 Per cercare la stessa frase nella direzione opposta, battete [N](N).
508
509 4. Per cerca una frase all'indietro, usate [?](?) invece che `/`{normal}.
510
511 5. Per tornare dove eravate prima premete `<C-o>`{normal} (tenendo premuto
512 il tasto `<Ctrl>`{normal} premete la lettera `o`{normal}). Ripetete
513 per tornare ancora più indietro. `<C-i>`{normal} per andare in avanti.
514
515"errroore" non è il modo giusto di scrivere errore; errroore è un errore.
516
517NOTA: Quando la ricerca arriva a fine file, ricomincia dall'inizio, a meno
518 che l'opzione ['wrapscan']('wrapscan') sia inattiva.
519
520# Lezione 4.3: CERCARE PARENTESI CORRISPONDENTI
521
522** Battete `%`{normal} per trovare una corrispondenza a ),], o }. **
523
524 1. Posizionate il cursore su una qualsiasi (, [, o { nella riga sotto
525 marcata ✓.
526
527 2. Ora battete il carattere [%](%).
528
529 3. Il cursore si sposterà sulla parentesi corrispondente.
530
531 4. Battete `%`{normal} per spostare il cursore sull'altra parentesi
532 corrispondente.
533
534 5. Portatevi col cursore su un'altra (,),[,],{ o } e guardate cosa fa
535 il comando `%`{normal}.
536
537Questa ( è una riga di test che contiene (, [, ] e { } al suo interno. ))
538
539NOTA: Questo comando è molto utile per correggere un programma con qualche
540 parentesi mancante o posizionata male!
541
542# Lezione 4.4: IL COMANDO SOSTITUISCI
543
544** Battete `:s/vecchio/nuovo/g` per sostituire "nuovo" a "vecchio". **
545
546 1. Portatevi col cursore alla riga qui sotto marcata ✗.
547
548 2. Battete
549~~~ cmd
550 :s/laa/la/
551~~~
552
553 NOTATE che il comando [:s](:s) la cambiato solo il primo "laa" della riga.
554
555 3. Adesso battete
556~~~ cmd
557 :s/laa/la/g
558~~~
559
560 Aggiungendo il flag [flag](:s_flags) si chiede di sostituire globalmente
561 sulla riga, ossia di cambiare tutte le occorrenze di "laa" della riga.
562
563Di solito laa stagione migliore per ammirare i fiori è laa primavera.
564
565 4. Per cambiare ogni occorrenza di una stringa in un gruppo di righe
566 battete
567~~~ cmd
568 :#,#s/vecchio/nuovo/g
569~~~
570 Dove #,# sono i numeri iniziale e finale del gruppo di righe dove va
571 fatta la sostituzione.
572
573 Battete
574~~~ cmd
575 :%s/vecchio/nuovo/g
576~~~
577 per cambiare ogni occorrenza di una stringa nell'intero file.
578
579 Battete
580~~~ cmd
581 :%s/vecchio/nuovo/gc
582~~~
583 per trovare ogni occorrenza di una stringa nell'intero file, e ricevere
584 la richiesta se cambiare oppure no ogni particolare occorrenza.
585
586# Lezione 4 SOMMARIO
587
588 1. `<C-g>`{normal} visualizza posizione e stato del file.
589 `G`{normal} va all'ultima riga del file.
590 numero `G`{normal} va al numero di riga specificato.
591 `gg`{normal} va alla prima riga del file.
592
593 2. Battendo `/`{normal} seguito da una frase cerca la frase in AVANTI.
594 Battendo `?`{normal} seguito da una frase cerca la frase all'INDIETRO.
595 Dopo aver trovato una corrispondenza battete `n`{normal} per cercare la
596 corrispondenza successiva nella stessa direzione, oppure `N`{normal}
597 per cercarla nella direzione opposta.
598 `<C-o>`{normal} vi riposta indietro a posizioni precedenti,
599 `<C-i>`{normal} vi riporta avanti verso le posizioni più recenti.
600
601 3. Battendo `%`{normal} mentre il cursore è su (,),[,],{, o } sposta il
602 cursore alla parentesi corrispondente.
603
604 4. Per sostituire "nuovo" alla prima occorrenza di "vecchio" in una riga
605 battete
606~~~ cmd
607 :s/vecchio/nuovo
608~~~
609 Per sostituire "nuovo" per tutti i "vecchio" di una riga battete
610~~~ cmd
611 :s/vecchio/nuovo/g
612~~~
613 Per sostituire frasi nell'intervallo di righe da "#" a "#" battete
614~~~ cmd
615 :#,#s/vecchio/nuovo/g
616~~~
617 Per sostituire tutte le occorrenze nel file battete
618~~~ cmd
619 :%s/vecchio/nuovo/g
620~~~
621 Per chiedere conferma per ogni possibile modifica, aggiungete il flag 'c'
622~~~ cmd
623 :%s/vecchio/nuovo/gc
624~~~
625%%%%
626# Lezione 5.1: COME ESEGUIRE UN COMANDO ESTERNO
627
628** Battete `:!`{vim} seguito da un comando esterno, per eseguire quel comando. **
629
630 1. Battete il familiare comando `:`{normal} per portare il cursore in fondo allo
631 schermo. Ciò vi consente di immettere un comando dalla riga-di-comando.
632
633 2. Ora battete il carattere [!](!cmd) (punto esclamativo). Questo permette di
634 eseguire qualsiasi comando esterno della shell.
635
636 3. Come esempio battete "ls" dopo il "!" e poi date `<Invio>`{normal}.
637 Ciò vi mostrerà una lista dei file nella vostra directory, proprio come se
638 deste il comando dalla shell.
639
640NOTA: Si può eseguire qualsiasi comando esterno in questo modo, si possono
641 anche specificare degli argomenti per il comando.
642
643NOTA: Tutti il comandi `:`{vim} vanno completati battendo `<Invio>`{normal}.
644 Da qui in poi non lo ricorderemo tutte le volte.
645
646# Lezione 5.2: RISCRIVERE I FILE
647
648** Per salvare le modifiche fatte al testo, battete `:w`{vim} NOME-FILE. **
649
650 1. Battete `:!ls`{vim} per ottenere la lista dei file nella vostra directory.
651 Già sapete di dover battere `<Invio>`{normal} per far eseguire il comando.
652
653 2. Scegliete un nome-file che ancora non esiste, come TEST.
654
655 3. Poi battete:
656~~~ cmd
657 :w TEST
658~~~
659 (dove TEST indica il nome-file da voi scelto.)
660
661 4. Questo comando salva l'intero file (il file Vim Tutor) con il nome TEST.
662 Per verificarlo, battete `:!ls`{vim} ancora per vedere i file nella
663 vostra directory.
664
665NOTA: Se uscite da Vim e chiamate Vim di nuovo battendo `vim TEST`, il file
666 in edit è una copia esatta del file di guida, quando è stato salvato.
667
668 5. Ora cancellate il file battendo:
669~~~ cmd
670 :!rm TEST
671~~~
672
673# Lezione 5.3: SCRIVERE SOLO PARTE DEL TESTO
674
675** Per salvare solo una parte del file, battete `v`{normal} movimento
676 `:w NOME-FILE`{vim}. **
677
678 1. Portatevi col cursore su questa riga.
679
680 2. Premete [v](v) e spostate il cursore alla riga marcata 5. qui sotto.
681 Notate che il testo selezionato è evidenziato.
682
683 3. Premete il tasto `:`{normal}. A fondo schermo apparirà
684
685 :'<,'>
686
687 4. Battete
688
689 `:w TEST`{vim}
690
691 dove TEST è un nome-file non ancora esistente. Verificate di vedere
692
693 `:'<,'>w TEST`{vim}
694
695 prima di premere `<Invio>`{normal}.
696
697 5. Vim scriverà le righe selezionate al file TEST. Usate `:!ls`{vim} per
698 controllare.
699 Non cancellate subito il file! Sarà usato nella prossima Lezione.
700
701NOTA: Premendo [v](v) iniziate il modo [selezione Visuale](visual-mode). Potete
702 usare il cursore per rendere la selezione più piccola o più grande.
703 Poi potete usare un operatore per fare qualcosa col testo così
704 selezionato. Per esempio, `d`{normal} cancella tutto il testo.
705
706# Lezione 5.4: AGGIUNGERE INTERI FILE E UNIRE FILE
707
708** Per inserire il contenuto di un file, battete `:r NOME-FILE`{vim}. **
709
710 1. Posizionate il cursore sopra questa riga.
711
712NOTA: Dopo aver eseguito il Passo 2 vedrete del testo dalla Lezione 5.3.
713 Quindi, spostatevi in GIÙ per vedere di nuovo questa Lezione.
714
715 2. A questo punto, inserite il vostro file TEST usando il comando
716
717 `:r TEST`{vim}
718
719 dove TEST è il nome del file che avete usato più sopra.
720 Il file da voi letto viene inserito sotto la riga del cursore.
721
722 3. Per verificare che è stato inserito un file, portatevi indietro col
723 cursore e vedrete che ci sono ora due copie della Lezione 5.3, quella
724 originale e quella inserita da voi, prendendola dal file.
725
726NOTA: Si può anche leggere l'output prodotto da un comando esterno.
727 Per esempio,
728
729 `:r !ls`{vim}
730
731 mette l'output del comando `ls` a partire dalla riga sotto il cursore.
732
733# Lezione 5 SOMMARIO
734
735 1. [:!comando](:!cmd) esegue un comando esterno.
736
737 Alcune esempi utili sono:
738 `:!ls`{vim} - mostra i file di una directory
739 `:!rm NOME-FILE`{vim} - cancella il file NOME-FILE
740
741 2. [:w](:w) NOME-FILE scrive il file in edit su disco con il nome
742 NOME-FILE.
743
744 3. [v](v) movimento :w NOME-FILE salva le righe selezionate in
745 modo Visual nel file chiamato NOME-FILE.
746
747 4. [:r](:r) NOME-FILE legge da disco il file NOME-FILE e lo
748 inserisce nella riga sotto il cursore.
749
750 5. [:r !dir](:r!) legge l'output del comando dir e lo
751 inserisce nella riga sotto il cursore.
752
753# Lezione 6.1: IL COMANDO OPEN
754
755** Battete `o`{normal} per aprire una nuova riga sotto a quella del cursore
756 e per mettervi in modo Insert sulla riga. **
757
758 1. Portatevi col cursore alla riga qui sotto marcata ✓.
759
760 2. Battete la lettera minuscola `o`{normal} per [aprire](o) una riga sotto il
761 cursore e mettervi in modo Insert.
762
763 3. Ora battete del testo e premete `<Esc>`{normal} per uscire dal modo Insert.
764
765Dopo battuto `o`{normal} il cursore si sposta sulla riga nuova in modo Insert.
766
767 4. Per aprire una riga SOPRA il cursore, semplicemente battete una
768 [O maiuscola](O), invece che una `o`{normal} minuscola.
769 Provate a farlo con la riga sotto.
770
771Aprite una riga sopra questa battendo O mentre il cursore è su questa riga.
772
773# Lezione 6.2: IL COMANDO AGGIUNGI
774
775** Battete `a`{normal} per inserire del testo DOPO il cursore. **
776
777 1. Portatevi col cursore all'inizio della riga sotto marcata ✗.
778
779 2. Premete `e`{normal} fino a che il cursore sia alla fine di "ri".
780
781 3. Battete la lettera minuscola `a`{normal} per [aggiungere](a) testo DOPO
782 il cursore.
783
784 4. Completate la parole come nella riga sotto. Premete `<Esc>`{normal} per
785 uscire dal modo Insert.
786
787 5. Usate `e`{normal} per spostarvi sulla parola incompleta seguente e
788 ripetete i passi 3 e 4.
789
790Questa ri serve per far prat ad aggiungere testo a una riga.
791Questa riga serve per far pratica ad aggiungere testo a una riga.
792
793NOTA: I comandi [a](a), [i](i) e [A](A) fanno tutti andate al modo Insert,
794 la sola differenza è dove vengono inseriti i caratteri.
795
796# Lezione 6.3: UN ALTRO MODO PER RIMPIAZZARE
797
798** Battete una `R`{normal} maiuscola per rimpiazzare più caratteri. **
799
800 1. Portatevi col cursore alla prima riga sotto marcata ✗. Portatevi col
801 cursore all'inizio del primo "xxx".
802
803 2. Poi premete `R`{normal} ([R maiuscolo](R)) e inserite il numero che
804 vedete sulla riga seguente, in modo da rimpiazzare "xxx".
805
806 3. Premete `<Esc>`{normal} per uscire dal [modo Replace](mode-replace).
807 Notate che il resto della riga non viene cambiato.
808
809 4. Ripetete i passi per rimpiazzare l'altro "xxx".
810
811Sommando 123 a xxx si ottiene xxx.
812Sommando 123 a 456 si ottiene 579.
813
814NOTA: Il modo Replace è come il modo Insert, ma ogni carattere immesso cancella
815 un carattere del testo.
816
817# Lezione 6.4: COPIARE E INCOLLARE TESTO
818
819** Usare l'operatore `y`{normal} per copiare testo e `p`{normal} per incollarlo. **
820
821 1. Andate alla riga marcata con sotto e posizionate il cursore dopo "a)".
822
823 2. Entrate in mod Visual con `v`{normal} e spostate il cursore subito prima
824 di "primo".
825
826 3. Battete `y`{normal} per [copiare](yank) (copy) il testo evidenziato.
827
828 4. Portatevi col cursore alla fine delle riga seguente: `j$`{normal}
829
830 5. Battete `p`{normal} per [incollare](put) il testo.
831
832 6. Premete `a`{normal} e poi battete "secondo". Premete `<Esc>`{normal} per
833 uscire dal modo Insert.
834
835 7. Usate il modo Visual per selezionare "elemento.", copiatelo con `y`{normal},
836 andate alla fine della riga seguente con `j$`{normal} e incollate lì il
837 testo con `p`{normal}
838
839a) Questo è il primo elemento.
840b)
841
842NOTA: SI può usare `y`{normal} come un operatore: `yw`{normal} copia una parola.
843
844# Lezione 6.5: IMPOSTARE UN'OPZIONE
845
846** Impostare un'opzione per ignorare la distinzione maiuscolo/minuscolo
847 quando si cerca o si sostituisce. **
848
849 1. Cercate la parola 'premete' col comando: `/premete`
850 ripetete più volte premendo `n`{normal}.
851
852 2. Impostate l'opzione the 'ic' (Ignora MAIUSCOLO/minuscolo) battendo:
853~~~ cmd
854 :set ic
855~~~
856 3. Poi cercate ancora 'ignore' premendo `n`{normal}.
857 Notate che ora vengono trovate anche le parole Premete e PREMETE.
858
859 4. Impostate le opzioni 'hlsearch' e 'incsearch':
860~~~ cmd
861 :set hls is
862~~~
863 5. Ora battete il comando di ricerca e guardate cosa succede:
864 /premete <Invio>
865
866 6. Per tornare a distinguere MAIUSCOLO/minuscolo battete:
867~~~ cmd
868 :set noic
869~~~
870 7. Per invertire il valore di un'opzione, metteteci davanti "inv":
871~~~ cmd
872 :set invic
873~~~
874NOTA: Per rimuovere l'evidenziazione delle corrispondenze battete:
875~~~ cmd
876 :nohlsearch
877~~~
878NOTA: Se volete ignorare la distinzione MAIUSCOLO/minuscolo solo una volta,
879 usate [\c](/\c) nel comando: /premete\c <Invio>
880
881# Lezione 6 SOMMARIO
882
883 1. Battete `o`{normal} per aprire una riga sotto il cursore e entrare
884 in modo Insert.
885 Battete `O`{normal} per aprire una riga SOPRA il cursore.
886
887 2. Battete `a`{normal} per inserire del testo DOPO il cursore.
888 Battete `A`{normal} per aggiungere del testo a fine riga.
889
890 3. Il comando `e`{normal} sposta il cursore a fine parola.
891
892 4. Il comando `y`{normal} copia del testo, `p`{normal} lo incolla.
893
894 5. Battendo `R`{normal} maiuscola si entra nel modo Replace
895 fino a quando non si preme il tasto `<Esc>`{normal}.
896
897 6. Battendo "[:set](:set) xxx" imposta l'opzione "xxx".
898 Alcune opzioni sono:
899
900 'ic' 'ignorecase' ignorare MAIUSCOLO/minuscole nella ricerca
901 'is' 'incsearch' mostra corrispondenze parziali in ricerca
902 'hls' 'hlsearch' evidenzia tutte le corrispondenze trovate
903
904 Si può usare sia il nome lungo di un'opzione, che quello corto.
905
906 7. Premettete "no" per annullare un'opzione:
907~~~ cmd
908 :set noic
909~~~
910 8. Premettete "inv" per invertire un'opzione:
911~~~ cmd
912 :set invic
913~~~
914
915# Lezione 7.1: OTTENERE AIUTO
916
917** Usate il sistema di aiuto on-line. **
918
919Vim ha un ampio sistema di aiuto on-line. Per iniziare, provate una
920di queste alternative:
921 - premete il taso `<HELP>`{normal} (se disponibile)
922 - premete il taso `<F1>`{normal} (se disponibile)
923 - Battete
924 `:help`{vim}
925
926Leggete il testo nella finestra di help per vedere come funziona.
927Battete `<C-w><C-w>`{normal} per passare da una finestra all'altra.
928Battete `:q`{vim} per chiudere la finestra di aiuto.
929
930Potete trovare aiuto su quasi tutto, fornendo un argomento al comando
931":help". Potete provare questi (non dimenticatevi di battere <Invio>):
932~~~ cmd
933 :help w
934 :help c_CTRL-D
935 :help insert-index
936 :help user-manual
937~~~
938# Lezione 7.2: CREARE UNO SCRIPT INIZIALE
939
940** Abilitare funzionalità di Vim. **
941
942Vim ha molte più funzionalità rispetto a Vi, ma molte di esse sono
943disabilitate per default. Per iniziare a usare più funzionalità occorre
944creare un file "vimrc".
945
946 1. Iniziate a editare il file "vimrc" con:
947 `:call mkdir(stdpath('config'),'p')`{vim}
948 `:exe 'edit' stdpath('config').'/init.vim'`{vim}
949
950 2. Salvate il file con:
951 `:w`{vim}
952
953 Potete aggiungere a questo file "vimrc" tutte le vostre impostazioni
954 preferite. Per maggiori informazioni battete `:help vimrc-intro`{vim}.
955
956# Lezione 7.3: COMPLETAMENTI
957
958** Completamenti nella riga-di-comando con `<C-d>`{normal} e `<Tab>`{normal}. **
959
960 1. Guardate i file che esistono nella directory corrente: `:!ls`{vim}
961
962 2. Battete l'inizio di un comando: `:e`{vim}
963
964 3. Premete `<C-d>`{normal} e Vim vi mostra una lista di tutti i comandi che
965 iniziano con la lettera "e".
966
967 4. Premete `<Tab>`{normal} e Vim completerà il nome comando a ":edit".
968
969 5. Ora aggiungete uno spazio e la lettera iniziale di un file nella vostra
970 directory: `:edit FIL`{vim}
971
972 6. Premete `<Tab>`{normal}. Vim completerà il nome (se è il solo possibile
973 completamento).
974
975NOTA: Il completamento è disponibile in parecchi comandi. È particolarmente
976 utile per il comando `:help`{vim}.
977
978# Lezione 7 SOMMARIO
979
980 1. Battete `:help`{vim}
981 o premete il tasto `<F1>`{normal} o `<Help>`{normal} per aprire una
982 finestra di aiuto.
983
984 2. Battete `:help ARGOMENTO`{vim} per trovare aiuto su ARGOMENTO.
985
986 3. Battete `<C-w><C-w>`{normal} per saltare da una finestra all'altra.
987
988 4. Battete `:q`{vim} per chiudere la finestra di help.
989
990 5. Create uno script iniziale vimrc mettendoci le vostre impostazioni
991 preferite.
992
993 6. Mentre immettete un comando, premete `<C-d>`{normal} per vedere i
994 completamenti possibili.
995 Premete `<Tab>`{normal} per usare uno dei completamenti visualizzati.
996
997# CONCLUSIONE
998
999Lo scopo di questa guida era di dare una breve panoramica sull'editor Vim,
1000che fosse sufficiente a permettervi di usare l'editore abbastanza facilmente.
1001La guida è tutt'altro che completa, Vim ha molti altri comandi.
1002Consultate spesso l''help.
1003
1004Ci sono molte risorse on-line (in inglese) per saperne di più riguardo a Vim.
1005Qui sotto potete trovare un breve elenco:
1006
1007- *Learn Vim Progressively*: http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
1008- *Learning Vim in 2014*: http://benmccormick.org/learning-vim-in-2014/
1009- *Vimcasts*: http://vimcasts.org/
1010- *Vim Video-Tutorials by Derek Wyatt*: http://derekwyatt.org/vim/tutorials/
1011- *Learn Vimscript the Hard Way*: http://learnvimscriptthehardway.stevelosh.com/
1012- *7 Habits of Effective testo Editing*: http://www.moolenaar.net/habits.html
1013- *vim-galore*: https://github.com/mhinz/vim-galore
1014
1015Se preferite un libro (sempre in inglese), *Practical Vim* e il suo seguito
1016*Modern Vim* di Drew Neil sono spesso raccomandati.
1017
1018Le parti più importanti dell'help di Vim (inclusa una traduzione completa
1019della "User Guide") sono disponibili anche in italiano.
1020Per procurarsi la versione italiana, vedere:
1021https://sites.google.com/view/vimdoc-it
1022
1023Questa guida è stata scritta di Michael C. Pierce e Robert K. Ware, Colorado
1024School of Mines usando idee fornite da Charles Smith, Colorado State
1025University. E-mail: bware@mines.colorado.edu.
1026
1027Modificato per Vim da Bram Moolenaar.
1028Modificato per vim-tutor-mode da Felipe Morales.
1029Tradotto in italiano da Antonio Colombo.