Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

Le Basi di VI (Improved) - Parte Seconda


Qualche uso un po' più avanzato di VIM, il famoso editor compatibile con VI

Nella Puntata Scorsa abbiamo visto come orientarci in VI: come scrivere, cancellare e modificare il testo. Facciamo un riassuntino:

  • [a] - Append: entra in "insert mode" e inizia a scrivere dal carattere successivo a quello evidenziato;
  • [i] - Insert: entra in "insert mode" e inizia a scrivere dal carattere evidenziato;
  • [v] - Visual: entra in "visual mode" permettendo di selezionare del testo;
  • [y] - Yank: se usato in "visual mode" permette di copiare il testo selezionato;
  • [x] - Cut: se usato in "visual mode" permette di tagliare il testo selezionato;
  • [p] - Paste: incolla il testo precedentemente tagliato o copiato
  • [ESC] - Esci dalla modalità corrente
  • [o] - Crea una nuova riga al di sotto di quella selezionata
  • [d][d] - Cancella la riga evidenziata
  • :q! - Esce ignorando i cambiamenti
  • :w - Salva
  • : x - Salva ed esci

In questa parte impareremo a muoverci più velocemente che non con le sole freccette, in questo campo VI presenta alcune sorprese; iniziamo aprendo VIM:

vim

E digitiamo qualcosa:

[a]

Ecco un testo scritto in VI, un ottimo editor di testo dedicato a programmatori e non solo.

Questa è un'altra riga di testo.

Ecco a voi una terza riga di testo da usare.

Se volessimo andare a scrivere proprio tra le parole "testo" e "dedicato" della prima riga? Potremmo tenere premuta la freccetta destra fino ad arrivare alla parola cercata oppure usare:

[w]

Tante volte quante servono per arrivare alla parola cercata, il tasto [w] serve per spostarsi di parola in parola, quindi il nostro cursore salterà da "Ecco" passando per "un", "testo" ... fino ad arrivare dove ci serve. Se usiamo invece [Shift+W] potremo saltare da una macro-parola all'altra.

Infatti VI distingue le parole contenute ad esempio in "fast-food", evidenziando prima "fast" e poi "food", mentre se usiamo [Shift+W] il cursore verrà portato all'inizio di "fast-food" per poi essere portato direttamente alla parola successiva.

Ecco un esempio usando solo il tasto [w]:

Ho sentito di un ottimo fast-food presente nei paraggi

[5 volte w]

Ho sentito di un ottimo |fast-food presente nei paraggi

[w]

Ho sentito di un ottimo fast|-food presente nei paraggi

e uno con [Shift+W]:

Ho sentito di un ottimo fast-food presente nei paraggi

[5 volte Shift+w]

Ho sentito di un ottimo |fast-food presente nei paraggi

[Shift+W]

Ho sentito di un ottimo fast-food |presente nei paraggi

Il giochino funziona anche con le cancellazioni: se usiamo [d] e premiamo un tasto direzionale avremo:

parola |da cancellare

[d][Freccia destra]

parola |a cancellare

mentre se useremo [d] e [w] avremo:

un |fast-food da cancellare

[d][w]

un |-food da cancellare

e se useremo [Shift+W] avremo:

un |fast-food da cancellare

[d][Shift+W]

un | da cancellare

In VI è possibile anche cercare in maniera abbastanza veloce all'interno del documento, assicuriamoci di essere in command mode (nessuna scritta nella barra di stato) e digitiamo

/Paroladacercare [invio]

E verranno evidenziate subito tutte le occorrenze della parola cercata, mentre il cursore sarà portato sulla prima occorrenza più vicina, per passare alla prossima occorrenza usiamo:

[n]

In VI possiamo anche effettuare sostituzioni in maniera abbastanza semplice, usando il comando:

:s/Paroladasostituire/Parola/Flag

Perciò se noi scriviamo:

:s/Ciao/Buongiorno

La prima occorrenza della parola "Ciao" sarà sostituita con "Buongiorno". Se invece scriviamo:

:s/Ciao/Buongiorno/g

Tutte le occorrenze della parola "Ciao" nella riga selezionata saranno sostituite con "Buongiorno". Questo è ovviamente un uso estremamente basilare della funzione.

Per ora è tutto. Chiudiamo VI con

:q!

Buon editing! Saluti e al prossimo post!

Penaz