| # Benvenuto alla guida introduttiva VIM |
| |
| Vim è un editor molto potente, che ha molti comandi, troppi per poterli |
| spiegare in una guida introduttiva come questa. Questa guida introduttiva è |
| stata preparata per descrivere i comandi che servono a poter usare facilmente |
| Vim come editor di uso generale. È IMPORTANTE ricordarsi che questa guida è |
| stata preparata per apprendere facendo pratica. Ciò significa che occorre fare |
| gli esercizi, per poter apprendere davvero. Limitandosi a leggere il testo, si |
| finirebbe per dimenticare presto le cose più importanti! |
| |
| Per iniziare, assicuratevi che il tasto di blocco maiuscole NON sia premuto e |
| premete ripetutamente il tasto `j`{normal} per muovere il cursore, finché la |
| Lezione 0 riempia completamente lo schermo. |
| |
| # Lezione 0 |
| |
| NOTA: I comandi dati durante le lezioni modificheranno il testo, ma le |
| modifiche da voi effettuate non saranno salvate. Quindi non preoccupatevi |
| se fate pasticci; ricordate che premendo il tasto [<Esc>](<Esc>) e poi |
| [u](u) verrà annullata l'ultima modifica. |
| |
| Questa guida è interattiva, e ci sono alcune cose che dovreste sapere. |
| - Battete [<Invio>](<Enter>) sui link [come questo](holy-grail ) per aprire la parte di help relativa. |
| - O semplicemente battete [K](K) su una parola qualsiasi per trovare la relativa |
| documentazione! |
| - Talvolta vi viene richiesto di modificare righe di testo come |
| questa qui |
| Una volta fatte correttamente le modifiche richieste, il segno ✗ a sinistra |
| della riga diverrà ✓. Penso iniziate a intuire quanto Vim sia bello. ;) |
| Altre volte vi viene richiesto di eseguire un comando (vedere più sotto): |
| ~~~ cmd |
| :help <Invio> |
| ~~~ |
| o di battere una sequenza di tasti |
| ~~~ normal |
| <Esc>0f<Spazio>d3wP$P |
| ~~~ |
| |
| I testi racchiusi tra i segni '<' e '>' (come `<Enter>`{normal}) indicano un tasto |
| da premere, invece di un testo da immettere. |
| |
| Ora, avanziamo verso la prossima Lezione (usa il tasto `j`{normal} per scorrere |
| verso il basso). |
| |
| # Lezione 1.1: SPOSTARE IL CURSORE |
| |
| ** Per spostare il cursore, premete i tasti `h`, `j`, `k`, `l` come indicato. |
| |
| ↑ |
| k Nota: Il tasto `h`{normal} è a sinistra e sposta a sinistra. |
| ← h l → Il tasto `l`{normal} è a destra e sposta a destra. |
| j Il tasto `j`{normal} assomiglia a una freccia in giù. |
| ↓ |
| |
| 1. Muovete il cursore sullo schermo, finché vi sentite a vostro agio. |
| |
| 2. Tenete schiacciato il tasto "giù" (`j`{normal}) per far ripetere l'azione. |
| Adesso sapete come andare alla prossima Lezione. |
| |
| 3. Usando il tasto "giù", passate alla Lezione 1.2. |
| |
| NOTA: Se non siete sicuri di aver usato i tasti giusti, premete <Esc> per |
| tornare al modo Normal. Poi immettete ancora il comando che volevate. |
| |
| NOTA: I tasti del cursore hanno lo steso effetto. Ma usando hjkl sarete in grado |
| di spostarvi molto più velocemente, dopo che vi siete abituati. Davvero! |
| |
| # Lezione 1.2: USCIRE DA VIM |
| |
| !! NOTA: Prima di eseguire i passi elencati sotto, |
| leggetevi l'intera Lezione !! |
| |
| 1. Premete il tasto <Esc> (per accertarvi di essere nel modo Normal). |
| |
| 2. Battete: |
| |
| `:q!`{vim} `<Invio>`{normal}. |
| |
| Così si esce dall'editor, SCARTANDO qualsiasi modifica fatta. |
| |
| 3. Aprite vim e tornate qui eseguendo il comando che vi ha portato a questa |
| guida. Potrebbe essere: |
| |
| :Tutor <Invio> |
| |
| 4. Se siete sicuri di aver memorizzato questi passi, eseguite i passi |
| dall'1 al 3 per uscire dall'editor e rientrarvi. |
| |
| NOTA: [:q!](:q) <Invio> SCARTA qualsiasi modifica fatta. Tra qualche Lezione |
| vedremo come salvare le modifiche su un file. |
| |
| 5. Spostatevi in giù col cursore, alla Lezione 1.3. |
| |
| # Lezione 1.3: MODIFICARE TESTO - CANCELLARE |
| |
| ** Premete `x`{normal} per cancellare il carattere sotto il cursore. ** |
| |
| 1. Portatevi col cursore alla riga qui sotto marcata ✗. |
| |
| 2. Per correggere, spostate il cursore posizionandolo sopra il |
| carattere da cancellare. |
| |
| 3. Premete [il tasto x](x) per cancellare il carattere di troppo. |
| |
| 4. Ripetete i passi da 2 a 4 finché la frase è corretta. |
| |
| La mmucca saltòò soppra lla luuna. |
| |
| 5. Ora che la riga è corretta, passate alla Lezione 1.4. |
| |
| NOTA: Nel seguire questa guida, non tentate di memorizzare, è |
| meglio imparare facendo pratica. |
| |
| # Lezione 1.4: EDITARE UN TESTO: INSERIMENTI |
| |
| ** Premete `i`{normal} per inserire del testo. ** |
| |
| 1. Portatevi col cursore alla prima riga sotto, marcata ✗. |
| |
| 2. Per rendere la riga uguale alla seguente, spostate il cursore fino |
| a sovrapporvi al print carattere DOPO il testo che va inserito. |
| |
| 3. Premete `i`{normal} e immettete le aggiunte richieste. |
| |
| 4. Dopo aver corretto ogni siingolo errore premete `<Esc>`{normal} |
| per ritornare al modo Normal. |
| Ripetete i passi da 2 a 4 per correggere la frase. |
| |
| Un po' testo mca questa . |
| Un po' di testo manca da questa riga. |
| |
| 5. Quando vi sentite a vostro agio nell'inserire del testo, passate alla |
| Lezione 1.5. |
| |
| # Lezione 1.5: EDITARE UN TESTO: AGGIUNGERE A FINE RIGA |
| |
| ** Premete `A`{normal} per aggiungere del testo a fine riga. ** |
| |
| 1. Portatevi col cursore alla prima riga sotto marcata ✗. |
| Non importa su che carattere sta il cursore nella riga. |
| |
| 2. Premete [A](A) e aggiungete quanto manca. |
| |
| 3. Una volta finito di aggiungere testo, premete `<Esc>`{normal} |
| per ritornare al modo Normal. |
| |
| 4. Portatevi col cursore alla seconda riga marcata ✗ e ripetete |
| i passi 2 e 3 per correggere la frase. |
| |
| Un po' di testo manca da que |
| Un po' di testo manca da questa riga. |
| Un po' di testo man |
| Un po' di testo manca anche qui. |
| |
| 5. Quando vi sentite a vostro agio nell'aggiungere del testo in fondo |
| alla riga, passate alla Lezione 1.6. |
| |
| # Lezione 1.6: EDITARE UN FILE |
| |
| ** Usate `:wq`{vim} per salvare un file e uscire da Vim. ** |
| |
| !! NOTA: Prima di eseguire i passi elencati sotto, |
| leggetevi l'intera Lezione !! |
| |
| 1. Uscite da questa guida come avete fatto nella Lezione 1.2: `:q!`{vim} |
| O, se avete accesso a un altro terminale, digitate quel che segue in |
| quel terminale. |
| |
| 2. Dal prompt della shell battete questo comando: |
| ~~~ sh |
| $ vim tutor |
| ~~~ |
| 'vim' è il comando che fa partire l'editor Vim, 'tutor' è il nome |
| del file che desiderate editare. Usate un file che siete in grado di |
| modificare. |
| |
| 3. Inserite e cancellate del testo, come visto nella Lezione precedente. |
| |
| 4. Salvate il file con le modifiche da voi fatte e uscite da Vim immettendo: |
| ~~~ cmd |
| :wq |
| ~~~ |
| |
| Notate che occorre premete `<Invio>` perché il comando sia eseguito. |
| |
| 5. Se siete usciti dalla guida Vim nel Passo 1, fate ripartire la guida Vim |
| e posizionatevi sul sommario qui sotto. |
| |
| 6. Dopo aver letto e capito tutti i passi visti qui sopra: metteteli in pratica. |
| |
| # Lezione 1 SOMMARIO |
| |
| 1. Il cursore su muove usando i tasti freccia o i tasti h j k l. |
| h (sinistra) j (giù) k (sù) l (destra) |
| |
| 2. Per far partire Vim dal prompt della shell immettete: |
| |
| ~~~ sh |
| $ vim NOME-DI-FILE |
| ~~~ |
| |
| 3. Per uscire da Vim battete: `<Esc>`{normal} `:q!`{vim} `<Invio>`{normal} |
| per buttar via tutte le modifiche. |
| OPPURE battete: `<Esc>`{normal} `:wq`{vim} `<Invio>`{normal} |
| per salvare le modifiche fatte. |
| |
| 4. Per cancellare il carattere sotto il cursore battete: `x`{normal} |
| |
| 5. Per inserire o aggiungere in fondo del testo battete: |
| `i`{normal} inserire testo `<Esc>`{normal} inserire prima del cursore. |
| `A`{normal} aggiungere testo `<Esc>`{normal} aggiungere a fine riga. |
| |
| NOTA: Premendo `<Esc>`{normal} si entra nel modo Normal e, se del caso, si |
| annulla un comando parzialmente immesso, che non volete eseguire. |
| |
| Ora continuate con la Lezione 2. |
| |
| # Lezione 2.1: COMANDI PER CANCELLARE |
| |
| ** Battete `dw`{normal} per cancellare una parola. ** |
| |
| 1. Premete `<Esc>`{normal} per assicurarvi di essere nel modo Normal. |
| |
| 2. Portatevi col cursore alla riga qui sotto marcata ✗. |
| |
| 3. Portatevi col cursore all'inizio di una parola che va cancellata |
| |
| 4. Battete [d](d)[w](w) per cancellare la parola. |
| |
| Ci sono penna alcune parole matita che non appartengono carta a questa frase. |
| |
| 5. Ripetete i passi 3 e 4 finché la frase è corretta e andate alla Lezione 2.2. |
| |
| # Lezione 2.2: ANCORA COMANDI PER CANCELLARE |
| |
| ** Battete `d$`{normal} per cancellare fino a fine riga. ** |
| |
| 1. Premete `<Esc>`{normal} per assicurarvi di essere nel modo Normal. |
| |
| 2. Portatevi col cursore alla riga qui sotto marcata ✗. |
| |
| 3. Portatevi col cursore alla fine della riga corretta (DOPO il primo . ). |
| |
| 4. Battete `d$`{normal} per cancellare fino a fine riga. |
| |
| Qualcuno ha scritto due volte la fine di questa riga. fine di questa riga. |
| |
| 5. Passate alla Lezione 2.3 per capire cosa sta accadendo. |
| |
| # Lezione 2.3: OPERATORI E MOVIMENTI |
| |
| Molti comandi che modificano del testo sono composti da un [operatore](operator) e |
| da un [movimento](navigation). |
| Il formato di un comando delete con l'operatore [d](d) è il seguente: |
| |
| d movimento |
| |
| Dove: |
| d - è l'operatore per "delete" (cancella) |
| movimento - indice dove l'operatore agisce (vedere sotto). |
| |
| Una breve lista di movimenti: |
| [w](w) - fino a inizio prossima parola, ESCLUSO il carattere iniziale. |
| [e](e) - fino alla fine della parola corrente, INCLUSO l'ultimo carattere. |
| [$]($) - fino a fine riga, INCLUSO l'ultimo carattere. |
| |
| Quindi battendo `de`{normal} cancella dalla posizione del cursore a fine parola. |
| |
| NOTA: Premendo solo il carattere di movimento in modo Normal, senza un operatore |
| sposterà il cursore come specificato. |
| |
| # Lezione 2.4: USARE UN CONTATORE PER UN MOVIMENTO |
| |
| ** Un numero prima di un movimento lo ripete altrettante volte. ** |
| |
| 1. Portatevi col cursore all'inizio della riga qui sotto, marcata ✓ . |
| |
| 2. Battete `2w`{normal} per spostare il cursore due parole in avanti. |
| |
| 3. Battete `3e`{normal} per spostare il cursore alla fine della terza parola |
| in avanti. |
| |
| 4. Battete `0`{normal} ([zero](0)) per andare all'inizio della riga. |
| |
| 5. Ripetete i passi 2 e 3 con numeri differenti. |
| |
| Questa è solo una riga con delle parole per imparare a muovere il cursore. |
| |
| 6. Passate alla Lezione 2.5. |
| |
| # Lezione 2.5: USARE UN CONTATORE PER CANCELLARE DI PIÙ |
| |
| ** Un numero prima di un operatore lo ripete altrettante volte. ** |
| |
| Usando l'operatore delete con un movimento di quelli visti sopra, si può |
| inserire un contatore prima del movimento, per cancellare di più |
| d numero movimento |
| |
| 1. Portatevi col cursore alla prima parola MAIUSCOLA sulla riga marcata ✗. |
| |
| 2. Battete `d2w`{normal} per cancellare le due parole MAIUSCOLE. |
| |
| 3. Ripetete i passi 1 e 2 con un contatore differente per cancellare tutte |
| le parole MAIUSCOLE consecutive, con un solo comando. |
| |
| Questa ABC DE riga FGHI JK LMN OP di parole è stata Q RS TUV pulita. |
| |
| # Lezione 2.6: AGIRE SU INTERE RIGHE |
| |
| ** Battete `dd`{normal} per cancellare un'intera riga. ** |
| |
| A causa della frequenza con cui capita di cancellare intere righe, |
| chi ha progettato Vim ha deciso che sarebbe stato più semplice battere |
| due volte la lettera d per cancellare una riga. |
| |
| 1. Portatevi col cursore alla seconda riga nella frase sotto. |
| 2. Battete [dd](dd) per cancellare la riga. |
| 3. Poi spostatevi alla riga numero 4. |
| 4. Battete `2dd`{normal} per cancellare due righe. |
| |
| 1) Le rose sono rosse, |
| 2) Il fango è divertente, |
| 3) Le viole sono blu, |
| 4) Io ho un'automobile, |
| 5) Gli orologi ti dicono l'ora, |
| 6) Dolce è lo zucchero, |
| 7) Ma non quanto sei tu. |
| |
| # Lezione 2.7: IL COMANDO UNDO |
| |
| ** Premete `u`{normal} per annullare l'ultimo comando, `U`{normal} per farlo su un'intera riga. ** |
| |
| 1. Portatevi col cursore alla riga qui sotto marcata ✗ e posizionatelo |
| sul primo errore. |
| 2. Battete `x`{normal} per cancellare il primo carattere indesiderato. |
| 3. Poi battete `u`{normal} per annullare l'ultimo comando eseguito. |
| 4. Poi correggete tutti gli errori sulla riga con il comando `x`{normal}. |
| 5. Poi battete `U`{normal} per riportare la riga a come era all'inizio. |
| 6. Poi battete `u`{normal} più volte per annullare l'effetto di `U`{normal} |
| e i comandi precedenti. |
| 7. Ora battete `<C-r>`{normal} (Control + R) più volte per rieseguire i comandi |
| (annullare gli annullamenti). |
| |
| Corregggete gli errori ssu queesta riga e rimettetelli usanndo undo. |
| |
| 8. Questi comandi sono molto utili. Potete procedere al Sommario della Lezione 2. |
| |
| # Lezione 2 SOMMARIO |
| |
| 1. Per cancellare dal cursore fino alla parola seguente battete: `dw`{normal} |
| 2. Per cancellare dal cursore a fine riga battete: `d$`{normal} |
| 3. Per cancellare un'intera riga battete: `dd`{normal} |
| 4. Per ripetere un movimento metteteci davanti un numero: `2w`{normal} |
| |
| 5. Il formato di un comando di modifica è: |
| operatore [numero] movimento |
| dove: |
| operatore - indica l'azione, come [d](d) per cancellare (delete) |
| [numero] - è un contatore opzionale per ripetere il movimento |
| movimento - indica quanto esteso è il campo su cui operare, come: |
| [w](w) (parola, word), |
| [$]($) (fine della riga), etc. |
| |
| 6. Per spostarsi a inizio riga si usa uno zero: [0](0) |
| |
| 7. Per annullare azioni precedenti, battete: `u`{normal} (u minuscolo) |
| Per annullare tutte le modifiche a una riga, battete: `U`{normal} (U maiuscolo) |
| Per annullare gli annulli, battete: `<C-r>`{normal} |
| |
| # Lezione 3.1: IL COMANDO PUT |
| |
| ** Battete `p`{normal} per inserire il testo appena cancellato dopo il cursore. ** |
| |
| 1. Portatevi col cursore alla prima riga marcata ✓ sotto. |
| |
| 2. Battete `dd`{normal} per cancellare la riga e metterla in un registro Vim. |
| |
| 3. Portatevi col cursore alla riga c), SOPRA dove va messa la riga cancellata. |
| |
| 4. Battete `p`{normal} per inserire la riga sotto quella dove è il cursore. |
| |
| 5. Ripetete i passi da 2 a 4 per inserire tutte le righe nell'ordine corretto. |
| |
| d) Puoi impararla anche tu? |
| b) Le viole sono blu, |
| c) L'intelligenza si impara. |
| a) Le rose sono rosse, |
| |
| # Lezione 3.2: IL COMANDO RIMPIAZZA |
| |
| ** Battete `rx`{normal} per rimpiazzare il carattere sotto il cursore con x. ** |
| |
| 1. Portatevi col cursore alla prima riga sotto marcata ✗. |
| |
| 2. Spostate il cursore fino a posizionarlo sopra al primo errore. |
| |
| 3. Battete `r`{normal} e poi il carattere "giusto". |
| |
| 4. Ripetete i passi 2 e 3 finché la prima riga è uguale alla seconda. |
| |
| Quwndo questa riga è stata imbessa, qualcuno ha premato i tasti sballiati! |
| Quando questa riga è stata immessa, qualcuno ha premuto i tasti sbagliati! |
| |
| 5. Ora passate alla Lezione 3.3. |
| |
| NOTA: Non dimenticate è meglio imparare provando, e non memorizzando. |
| |
| # Lezione 3.3: L'OPERATORE CAMBIA `c`{normal} |
| |
| ** Per cambiare fino alla fine di una parola, battete `ce`{normal}. ** |
| |
| 1. Portatevi col cursore alla prima riga sotto marcata ✗. |
| |
| 2. Posizionate il cursore sulla prima "a" di "rana". |
| |
| 3. Battete `ce`{normal} e la parola corretta (in questo caso, battete "iga" ). |
| |
| 4. Premete `<Esc>`{normal} e posizionatevi sul successivo carattere da |
| cambiare. |
| |
| 5. Ripetete i passi 3 e 4 finché la prima frase è uguale alla seconda. |
| |
| Questa rana ha alcune papere che vanga cambiate uscita il comando change. |
| Questa riga ha alcune parole che vanno cambiate usando il comando change. |
| |
| Notare che [c](c)e cancella la parole e vi mette in modo Insert. |
| |
| # Lezione 3.4: ALTRE MODIFICHE USANDO `c`{normal} |
| |
| ** L'operatore cambia si usa con gli stessi movimenti di cancella. ** |
| |
| 1. L'operatore cambia funziona come l'operatore cancella. Il formato è: |
| |
| c [numero] movimento |
| |
| 2. I movimenti sono gli stessi, come `w`{normal} (parola) e `$`{normal} (fine-riga). |
| |
| 3. Spostatevi alla prima riga sotto marcata ✗. |
| |
| 4. Portatevi col cursore alla prima parola errata. |
| |
| 5. Battete `c$`{normal} e battete il resto della riga come la seguente |
| e premete `<Esc>`{normal}. |
| |
| La fine di questa riga ha bisogno di aiuto per divenire uguale alla seguente. |
| La fine di questa riga va corretta usando il comando `c$`. |
| |
| NOTA: Si può usare il tasto Backspace per correggere errori di battitura. |
| |
| # Lezione 3 SOMMARIO |
| |
| 1. Per reinserire del testo che è stato appena cancellato, battete [p](p). |
| Questo comando mette il testo appena cancellato DOPO il cursore |
| (se una riga intera era stata cancellata, questa diverrà la riga SOTTO |
| il cursore). |
| |
| 2. Per rimpiazzare il carattere sotto il cursore, battete [r](r) e poi il |
| carattere che volete sostituire a quello. |
| |
| 3. Il comando [change](c) consente di cambiare il testo dalla posizione |
| del cursore fino a dove il movimento lo porta. Battete `ce`{normal} |
| per cambiare dalla posizione del cursore alla fine della parola, e |
| `c$`{normal} per cambiare il testo fino alla fine della riga. |
| |
| 4. Il formato per il comando che cambia del testo è: |
| |
| c [numero] movimento |
| |
| Adesso passate alla prossima Lezione. |
| |
| # Lezione 4.1: POSIZIONE DEL CURSORE E STATO DEL FILE |
| |
| ** Battete `<C-g>`{normal} per visualizzare la vostra posizione |
| all'interno del file, e lo stato del file. |
| Battete `G`{normal} per andare a una data riga nel file. ** |
| |
| !! NOTA: Prima di eseguire i passi elencati sotto, |
| leggetevi l'intera Lezione !! |
| |
| 1. Tenendo premuto il tasto `<Ctrl>`{normal} premete `g`{normal}. Questo si indica |
| scrivendo `<C-g>`{normal}. Un messaggio apparirà in fondo alla pagina |
| con il nome del file e la posizione all'interno del file. Memorizzate |
| il numero di riga per il Passo 3 sotto. |
| |
| NOTA: La posizione del cursore si può vedere nell'angolo in basso a destra |
| dello schermo. Ciò accada se è stata specificata l'opzione ['ruler']('ruler'). |
| 2. Battete [G](G) per portarvi in fondo al file. |
| Battete [gg](gg) per portarvi in cima al file. |
| |
| 3. Battete il numero della riga in cui eravate e poi `G`{normal}. In questo modo |
| tornerete alla riga in cui eravate al momento di battere `<C-g>`{normal}. |
| |
| 4. Se vi sentite sicuri del fatto vostro, eseguite i passi da 1 a 3. |
| |
| # Lezione 4.2: IL COMANDO CERCA |
| |
| ** Battete `/`{normal} seguito da una frase, per cercare quella frase. ** |
| |
| 1. In modo Normal battete il carattere `/`{normal}. Notate che il carattere |
| stesso e il cursore sono in fondo alla schermo, dove vengono anche |
| visualizzati i comandi che iniziano per `:`{normal}. |
| |
| 2. Ora battete 'errroore' `<Invio>`{normal}. Questa è la parola che volete |
| cercare. |
| |
| 3. Per cercare ancora la stessa frase, simply battete [n](n). |
| Per cercare la stessa frase nella direzione opposta, battete [N](N). |
| |
| 4. Per cerca una frase all'indietro, usate [?](?) invece che `/`{normal}. |
| |
| 5. Per tornare dove eravate prima premete `<C-o>`{normal} (tenendo premuto |
| il tasto `<Ctrl>`{normal} premete la lettera `o`{normal}). Ripetete |
| per tornare ancora più indietro. `<C-i>`{normal} per andare in avanti. |
| |
| "errroore" non è il modo giusto di scrivere errore; errroore è un errore. |
| |
| NOTA: Quando la ricerca arriva a fine file, ricomincia dall'inizio, a meno |
| che l'opzione ['wrapscan']('wrapscan') sia inattiva. |
| |
| # Lezione 4.3: CERCARE PARENTESI CORRISPONDENTI |
| |
| ** Battete `%`{normal} per trovare una corrispondenza a ),], o }. ** |
| |
| 1. Posizionate il cursore su una qualsiasi (, [, o { nella riga sotto |
| marcata ✓. |
| |
| 2. Ora battete il carattere [%](%). |
| |
| 3. Il cursore si sposterà sulla parentesi corrispondente. |
| |
| 4. Battete `%`{normal} per spostare il cursore sull'altra parentesi |
| corrispondente. |
| |
| 5. Portatevi col cursore su un'altra (,),[,],{ o } e guardate cosa fa |
| il comando `%`{normal}. |
| |
| Questa ( è una riga di test che contiene (, [, ] e { } al suo interno. )) |
| |
| NOTA: Questo comando è molto utile per correggere un programma con qualche |
| parentesi mancante o posizionata male! |
| |
| # Lezione 4.4: IL COMANDO SOSTITUISCI |
| |
| ** Battete `:s/vecchio/nuovo/g` per sostituire "nuovo" a "vecchio". ** |
| |
| 1. Portatevi col cursore alla riga qui sotto marcata ✗. |
| |
| 2. Battete |
| ~~~ cmd |
| :s/laa/la/ |
| ~~~ |
| |
| NOTATE che il comando [:s](:s) la cambiato solo il primo "laa" della riga. |
| |
| 3. Adesso battete |
| ~~~ cmd |
| :s/laa/la/g |
| ~~~ |
| |
| Aggiungendo il flag [flag](:s_flags) si chiede di sostituire globalmente |
| sulla riga, ossia di cambiare tutte le occorrenze di "laa" della riga. |
| |
| Di solito laa stagione migliore per ammirare i fiori è laa primavera. |
| |
| 4. Per cambiare ogni occorrenza di una stringa in un gruppo di righe |
| battete |
| ~~~ cmd |
| :#,#s/vecchio/nuovo/g |
| ~~~ |
| Dove #,# sono i numeri iniziale e finale del gruppo di righe dove va |
| fatta la sostituzione. |
| |
| Battete |
| ~~~ cmd |
| :%s/vecchio/nuovo/g |
| ~~~ |
| per cambiare ogni occorrenza di una stringa nell'intero file. |
| |
| Battete |
| ~~~ cmd |
| :%s/vecchio/nuovo/gc |
| ~~~ |
| per trovare ogni occorrenza di una stringa nell'intero file, e ricevere |
| la richiesta se cambiare oppure no ogni particolare occorrenza. |
| |
| # Lezione 4 SOMMARIO |
| |
| 1. `<C-g>`{normal} visualizza posizione e stato del file. |
| `G`{normal} va all'ultima riga del file. |
| numero `G`{normal} va al numero di riga specificato. |
| `gg`{normal} va alla prima riga del file. |
| |
| 2. Battendo `/`{normal} seguito da una frase cerca la frase in AVANTI. |
| Battendo `?`{normal} seguito da una frase cerca la frase all'INDIETRO. |
| Dopo aver trovato una corrispondenza battete `n`{normal} per cercare la |
| corrispondenza successiva nella stessa direzione, oppure `N`{normal} |
| per cercarla nella direzione opposta. |
| `<C-o>`{normal} vi riposta indietro a posizioni precedenti, |
| `<C-i>`{normal} vi riporta avanti verso le posizioni più recenti. |
| |
| 3. Battendo `%`{normal} mentre il cursore è su (,),[,],{, o } sposta il |
| cursore alla parentesi corrispondente. |
| |
| 4. Per sostituire "nuovo" alla prima occorrenza di "vecchio" in una riga |
| battete |
| ~~~ cmd |
| :s/vecchio/nuovo |
| ~~~ |
| Per sostituire "nuovo" per tutti i "vecchio" di una riga battete |
| ~~~ cmd |
| :s/vecchio/nuovo/g |
| ~~~ |
| Per sostituire frasi nell'intervallo di righe da "#" a "#" battete |
| ~~~ cmd |
| :#,#s/vecchio/nuovo/g |
| ~~~ |
| Per sostituire tutte le occorrenze nel file battete |
| ~~~ cmd |
| :%s/vecchio/nuovo/g |
| ~~~ |
| Per chiedere conferma per ogni possibile modifica, aggiungete il flag 'c' |
| ~~~ cmd |
| :%s/vecchio/nuovo/gc |
| ~~~ |
| %%%% |
| # Lezione 5.1: COME ESEGUIRE UN COMANDO ESTERNO |
| |
| ** Battete `:!`{vim} seguito da un comando esterno, per eseguire quel comando. ** |
| |
| 1. Battete il familiare comando `:`{normal} per portare il cursore in fondo allo |
| schermo. Ciò vi consente di immettere un comando dalla riga-di-comando. |
| |
| 2. Ora battete il carattere [!](!cmd) (punto esclamativo). Questo permette di |
| eseguire qualsiasi comando esterno della shell. |
| |
| 3. Come esempio battete "ls" dopo il "!" e poi date `<Invio>`{normal}. |
| Ciò vi mostrerà una lista dei file nella vostra directory, proprio come se |
| deste il comando dalla shell. |
| |
| NOTA: Si può eseguire qualsiasi comando esterno in questo modo, si possono |
| anche specificare degli argomenti per il comando. |
| |
| NOTA: Tutti il comandi `:`{vim} vanno completati battendo `<Invio>`{normal}. |
| Da qui in poi non lo ricorderemo tutte le volte. |
| |
| # Lezione 5.2: RISCRIVERE I FILE |
| |
| ** Per salvare le modifiche fatte al testo, battete `:w`{vim} NOME-FILE. ** |
| |
| 1. Battete `:!ls`{vim} per ottenere la lista dei file nella vostra directory. |
| Già sapete di dover battere `<Invio>`{normal} per far eseguire il comando. |
| |
| 2. Scegliete un nome-file che ancora non esiste, come TEST. |
| |
| 3. Poi battete: |
| ~~~ cmd |
| :w TEST |
| ~~~ |
| (dove TEST indica il nome-file da voi scelto.) |
| |
| 4. Questo comando salva l'intero file (il file Vim Tutor) con il nome TEST. |
| Per verificarlo, battete `:!ls`{vim} ancora per vedere i file nella |
| vostra directory. |
| |
| NOTA: Se uscite da Vim e chiamate Vim di nuovo battendo `vim TEST`, il file |
| in edit è una copia esatta del file di guida, quando è stato salvato. |
| |
| 5. Ora cancellate il file battendo: |
| ~~~ cmd |
| :!rm TEST |
| ~~~ |
| |
| # Lezione 5.3: SCRIVERE SOLO PARTE DEL TESTO |
| |
| ** Per salvare solo una parte del file, battete `v`{normal} movimento |
| `:w NOME-FILE`{vim}. ** |
| |
| 1. Portatevi col cursore su questa riga. |
| |
| 2. Premete [v](v) e spostate il cursore alla riga marcata 5. qui sotto. |
| Notate che il testo selezionato è evidenziato. |
| |
| 3. Premete il tasto `:`{normal}. A fondo schermo apparirà |
| |
| :'<,'> |
| |
| 4. Battete |
| |
| `:w TEST`{vim} |
| |
| dove TEST è un nome-file non ancora esistente. Verificate di vedere |
| |
| `:'<,'>w TEST`{vim} |
| |
| prima di premere `<Invio>`{normal}. |
| |
| 5. Vim scriverà le righe selezionate al file TEST. Usate `:!ls`{vim} per |
| controllare. |
| Non cancellate subito il file! Sarà usato nella prossima Lezione. |
| |
| NOTA: Premendo [v](v) iniziate il modo [selezione Visuale](visual-mode). Potete |
| usare il cursore per rendere la selezione più piccola o più grande. |
| Poi potete usare un operatore per fare qualcosa col testo così |
| selezionato. Per esempio, `d`{normal} cancella tutto il testo. |
| |
| # Lezione 5.4: AGGIUNGERE INTERI FILE E UNIRE FILE |
| |
| ** Per inserire il contenuto di un file, battete `:r NOME-FILE`{vim}. ** |
| |
| 1. Posizionate il cursore sopra questa riga. |
| |
| NOTA: Dopo aver eseguito il Passo 2 vedrete del testo dalla Lezione 5.3. |
| Quindi, spostatevi in GIÙ per vedere di nuovo questa Lezione. |
| |
| 2. A questo punto, inserite il vostro file TEST usando il comando |
| |
| `:r TEST`{vim} |
| |
| dove TEST è il nome del file che avete usato più sopra. |
| Il file da voi letto viene inserito sotto la riga del cursore. |
| |
| 3. Per verificare che è stato inserito un file, portatevi indietro col |
| cursore e vedrete che ci sono ora due copie della Lezione 5.3, quella |
| originale e quella inserita da voi, prendendola dal file. |
| |
| NOTA: Si può anche leggere l'output prodotto da un comando esterno. |
| Per esempio, |
| |
| `:r !ls`{vim} |
| |
| mette l'output del comando `ls` a partire dalla riga sotto il cursore. |
| |
| # Lezione 5 SOMMARIO |
| |
| 1. [:!comando](:!cmd) esegue un comando esterno. |
| |
| Alcune esempi utili sono: |
| `:!ls`{vim} - mostra i file di una directory |
| `:!rm NOME-FILE`{vim} - cancella il file NOME-FILE |
| |
| 2. [:w](:w) NOME-FILE scrive il file in edit su disco con il nome |
| NOME-FILE. |
| |
| 3. [v](v) movimento :w NOME-FILE salva le righe selezionate in |
| modo Visual nel file chiamato NOME-FILE. |
| |
| 4. [:r](:r) NOME-FILE legge da disco il file NOME-FILE e lo |
| inserisce nella riga sotto il cursore. |
| |
| 5. [:r !dir](:r!) legge l'output del comando dir e lo |
| inserisce nella riga sotto il cursore. |
| |
| # Lezione 6.1: IL COMANDO OPEN |
| |
| ** Battete `o`{normal} per aprire una nuova riga sotto a quella del cursore |
| e per mettervi in modo Insert sulla riga. ** |
| |
| 1. Portatevi col cursore alla riga qui sotto marcata ✓. |
| |
| 2. Battete la lettera minuscola `o`{normal} per [aprire](o) una riga sotto il |
| cursore e mettervi in modo Insert. |
| |
| 3. Ora battete del testo e premete `<Esc>`{normal} per uscire dal modo Insert. |
| |
| Dopo battuto `o`{normal} il cursore si sposta sulla riga nuova in modo Insert. |
| |
| 4. Per aprire una riga SOPRA il cursore, semplicemente battete una |
| [O maiuscola](O), invece che una `o`{normal} minuscola. |
| Provate a farlo con la riga sotto. |
| |
| Aprite una riga sopra questa battendo O mentre il cursore è su questa riga. |
| |
| # Lezione 6.2: IL COMANDO AGGIUNGI |
| |
| ** Battete `a`{normal} per inserire del testo DOPO il cursore. ** |
| |
| 1. Portatevi col cursore all'inizio della riga sotto marcata ✗. |
| |
| 2. Premete `e`{normal} fino a che il cursore sia alla fine di "ri". |
| |
| 3. Battete la lettera minuscola `a`{normal} per [aggiungere](a) testo DOPO |
| il cursore. |
| |
| 4. Completate la parole come nella riga sotto. Premete `<Esc>`{normal} per |
| uscire dal modo Insert. |
| |
| 5. Usate `e`{normal} per spostarvi sulla parola incompleta seguente e |
| ripetete i passi 3 e 4. |
| |
| Questa ri serve per far prat ad aggiungere testo a una riga. |
| Questa riga serve per far pratica ad aggiungere testo a una riga. |
| |
| NOTA: I comandi [a](a), [i](i) e [A](A) fanno tutti andate al modo Insert, |
| la sola differenza è dove vengono inseriti i caratteri. |
| |
| # Lezione 6.3: UN ALTRO MODO PER RIMPIAZZARE |
| |
| ** Battete una `R`{normal} maiuscola per rimpiazzare più caratteri. ** |
| |
| 1. Portatevi col cursore alla prima riga sotto marcata ✗. Portatevi col |
| cursore all'inizio del primo "xxx". |
| |
| 2. Poi premete `R`{normal} ([R maiuscolo](R)) e inserite il numero che |
| vedete sulla riga seguente, in modo da rimpiazzare "xxx". |
| |
| 3. Premete `<Esc>`{normal} per uscire dal [modo Replace](mode-replace). |
| Notate che il resto della riga non viene cambiato. |
| |
| 4. Ripetete i passi per rimpiazzare l'altro "xxx". |
| |
| Sommando 123 a xxx si ottiene xxx. |
| Sommando 123 a 456 si ottiene 579. |
| |
| NOTA: Il modo Replace è come il modo Insert, ma ogni carattere immesso cancella |
| un carattere del testo. |
| |
| # Lezione 6.4: COPIARE E INCOLLARE TESTO |
| |
| ** Usare l'operatore `y`{normal} per copiare testo e `p`{normal} per incollarlo. ** |
| |
| 1. Andate alla riga marcata con ✓ sotto e posizionate il cursore dopo "a)". |
| |
| 2. Entrate in mod Visual con `v`{normal} e spostate il cursore subito prima |
| di "primo". |
| |
| 3. Battete `y`{normal} per [copiare](yank) (copy) il testo evidenziato. |
| |
| 4. Portatevi col cursore alla fine delle riga seguente: `j$`{normal} |
| |
| 5. Battete `p`{normal} per [incollare](put) il testo. |
| |
| 6. Premete `a`{normal} e poi battete "secondo". Premete `<Esc>`{normal} per |
| uscire dal modo Insert. |
| |
| 7. Usate il modo Visual per selezionare "elemento.", copiatelo con `y`{normal}, |
| andate alla fine della riga seguente con `j$`{normal} e incollate lì il |
| testo con `p`{normal} |
| |
| a) Questo è il primo elemento. |
| b) |
| |
| NOTA: SI può usare `y`{normal} come un operatore: `yw`{normal} copia una parola. |
| |
| # Lezione 6.5: IMPOSTARE UN'OPZIONE |
| |
| ** Impostare un'opzione per ignorare la distinzione maiuscolo/minuscolo |
| quando si cerca o si sostituisce. ** |
| |
| 1. Cercate la parola 'premete' col comando: `/premete` |
| ripetete più volte premendo `n`{normal}. |
| |
| 2. Impostate l'opzione the 'ic' (Ignora MAIUSCOLO/minuscolo) battendo: |
| ~~~ cmd |
| :set ic |
| ~~~ |
| 3. Poi cercate ancora 'ignore' premendo `n`{normal}. |
| Notate che ora vengono trovate anche le parole Premete e PREMETE. |
| |
| 4. Impostate le opzioni 'hlsearch' e 'incsearch': |
| ~~~ cmd |
| :set hls is |
| ~~~ |
| 5. Ora battete il comando di ricerca e guardate cosa succede: |
| /premete <Invio> |
| |
| 6. Per tornare a distinguere MAIUSCOLO/minuscolo battete: |
| ~~~ cmd |
| :set noic |
| ~~~ |
| 7. Per invertire il valore di un'opzione, metteteci davanti "inv": |
| ~~~ cmd |
| :set invic |
| ~~~ |
| NOTA: Per rimuovere l'evidenziazione delle corrispondenze battete: |
| ~~~ cmd |
| :nohlsearch |
| ~~~ |
| NOTA: Se volete ignorare la distinzione MAIUSCOLO/minuscolo solo una volta, |
| usate [\c](/\c) nel comando: /premete\c <Invio> |
| |
| # Lezione 6 SOMMARIO |
| |
| 1. Battete `o`{normal} per aprire una riga sotto il cursore e entrare |
| in modo Insert. |
| Battete `O`{normal} per aprire una riga SOPRA il cursore. |
| |
| 2. Battete `a`{normal} per inserire del testo DOPO il cursore. |
| Battete `A`{normal} per aggiungere del testo a fine riga. |
| |
| 3. Il comando `e`{normal} sposta il cursore a fine parola. |
| |
| 4. Il comando `y`{normal} copia del testo, `p`{normal} lo incolla. |
| |
| 5. Battendo `R`{normal} maiuscola si entra nel modo Replace |
| fino a quando non si preme il tasto `<Esc>`{normal}. |
| |
| 6. Battendo "[:set](:set) xxx" imposta l'opzione "xxx". |
| Alcune opzioni sono: |
| |
| 'ic' 'ignorecase' ignorare MAIUSCOLO/minuscole nella ricerca |
| 'is' 'incsearch' mostra corrispondenze parziali in ricerca |
| 'hls' 'hlsearch' evidenzia tutte le corrispondenze trovate |
| |
| Si può usare sia il nome lungo di un'opzione, che quello corto. |
| |
| 7. Premettete "no" per annullare un'opzione: |
| ~~~ cmd |
| :set noic |
| ~~~ |
| 8. Premettete "inv" per invertire un'opzione: |
| ~~~ cmd |
| :set invic |
| ~~~ |
| |
| # Lezione 7.1: OTTENERE AIUTO |
| |
| ** Usate il sistema di aiuto on-line. ** |
| |
| Vim ha un ampio sistema di aiuto on-line. Per iniziare, provate una |
| di queste alternative: |
| - premete il taso `<HELP>`{normal} (se disponibile) |
| - premete il taso `<F1>`{normal} (se disponibile) |
| - Battete |
| `:help`{vim} |
| |
| Leggete il testo nella finestra di help per vedere come funziona. |
| Battete `<C-w><C-w>`{normal} per passare da una finestra all'altra. |
| Battete `:q`{vim} per chiudere la finestra di aiuto. |
| |
| Potete trovare aiuto su quasi tutto, fornendo un argomento al comando |
| ":help". Potete provare questi (non dimenticatevi di battere <Invio>): |
| ~~~ cmd |
| :help w |
| :help c_CTRL-D |
| :help insert-index |
| :help user-manual |
| ~~~ |
| # Lezione 7.2: CREARE UNO SCRIPT INIZIALE |
| |
| ** Abilitare funzionalità di Vim. ** |
| |
| Vim ha molte più funzionalità rispetto a Vi, ma molte di esse sono |
| disabilitate per default. Per iniziare a usare più funzionalità occorre |
| creare un file "vimrc". |
| |
| 1. Iniziate a editare il file "vimrc" con: |
| `:call mkdir(stdpath('config'),'p')`{vim} |
| `:exe 'edit' stdpath('config').'/init.vim'`{vim} |
| |
| 2. Salvate il file con: |
| `:w`{vim} |
| |
| Potete aggiungere a questo file "vimrc" tutte le vostre impostazioni |
| preferite. Per maggiori informazioni battete `:help vimrc-intro`{vim}. |
| |
| # Lezione 7.3: COMPLETAMENTI |
| |
| ** Completamenti nella riga-di-comando con `<C-d>`{normal} e `<Tab>`{normal}. ** |
| |
| 1. Guardate i file che esistono nella directory corrente: `:!ls`{vim} |
| |
| 2. Battete l'inizio di un comando: `:e`{vim} |
| |
| 3. Premete `<C-d>`{normal} e Vim vi mostra una lista di tutti i comandi che |
| iniziano con la lettera "e". |
| |
| 4. Premete `<Tab>`{normal} e Vim completerà il nome comando a ":edit". |
| |
| 5. Ora aggiungete uno spazio e la lettera iniziale di un file nella vostra |
| directory: `:edit FIL`{vim} |
| |
| 6. Premete `<Tab>`{normal}. Vim completerà il nome (se è il solo possibile |
| completamento). |
| |
| NOTA: Il completamento è disponibile in parecchi comandi. È particolarmente |
| utile per il comando `:help`{vim}. |
| |
| # Lezione 7 SOMMARIO |
| |
| 1. Battete `:help`{vim} |
| o premete il tasto `<F1>`{normal} o `<Help>`{normal} per aprire una |
| finestra di aiuto. |
| |
| 2. Battete `:help ARGOMENTO`{vim} per trovare aiuto su ARGOMENTO. |
| |
| 3. Battete `<C-w><C-w>`{normal} per saltare da una finestra all'altra. |
| |
| 4. Battete `:q`{vim} per chiudere la finestra di help. |
| |
| 5. Create uno script iniziale vimrc mettendoci le vostre impostazioni |
| preferite. |
| |
| 6. Mentre immettete un comando, premete `<C-d>`{normal} per vedere i |
| completamenti possibili. |
| Premete `<Tab>`{normal} per usare uno dei completamenti visualizzati. |
| |
| # CONCLUSIONE |
| |
| Lo scopo di questa guida era di dare una breve panoramica sull'editor Vim, |
| che fosse sufficiente a permettervi di usare l'editore abbastanza facilmente. |
| La guida è tutt'altro che completa, Vim ha molti altri comandi. |
| Consultate spesso l''help. |
| |
| Ci sono molte risorse on-line (in inglese) per saperne di più riguardo a Vim. |
| Qui sotto potete trovare un breve elenco: |
| |
| - *Learn Vim Progressively*: http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ |
| - *Learning Vim in 2014*: http://benmccormick.org/learning-vim-in-2014/ |
| - *Vimcasts*: http://vimcasts.org/ |
| - *Vim Video-Tutorials by Derek Wyatt*: http://derekwyatt.org/vim/tutorials/ |
| - *Learn Vimscript the Hard Way*: http://learnvimscriptthehardway.stevelosh.com/ |
| - *7 Habits of Effective testo Editing*: http://www.moolenaar.net/habits.html |
| - *vim-galore*: https://github.com/mhinz/vim-galore |
| |
| Se preferite un libro (sempre in inglese), *Practical Vim* e il suo seguito |
| *Modern Vim* di Drew Neil sono spesso raccomandati. |
| |
| Le parti più importanti dell'help di Vim (inclusa una traduzione completa |
| della "User Guide") sono disponibili anche in italiano. |
| Per procurarsi la versione italiana, vedere: |
| https://sites.google.com/view/vimdoc-it |
| |
| Questa guida è stata scritta di Michael C. Pierce e Robert K. Ware, Colorado |
| School of Mines usando idee fornite da Charles Smith, Colorado State |
| University. E-mail: bware@mines.colorado.edu. |
| |
| Modificato per Vim da Bram Moolenaar. |
| Modificato per vim-tutor-mode da Felipe Morales. |
| Tradotto in italiano da Antonio Colombo. |