L’editor vim (vi Improved) è la versione migliorata dello storico editor dei sistemi Unix vi (pronunciato “vee-eye”) che fin dagli anni ’70 e uno dei “migliori amici” del programmatore. Vim è uno strumento molto potente ed è partcolarmente indicato per editare programmi e file di testo in genere. Tutti i comandi sono dati con i caratteri della tastiera, in modo tale che presa la manualità si riesce a lavorare molto velocemente. Ha un manuale completo built-in, che è possibile attivare utilizzando il comando :help quando il programma viene avviato (invece di utilizzare i classici man o info, che in questo caso non contengono tutte le informazioni) .
Ciò che spesso confonde l’utente principiante è il fatto che VI può funzionare in due modalità: modalità di comando (command mode) e modalità di inserimento (insert mode). L’editor si avvia sempre in modalità comando; in questa modalità è possibile muoversi attraverso il testo, fare ricerche e sostituzioni, selezionare blocchi di testo ecc. Utilizzando i caratteri della tastiera succede che ogni tasto ha non uno, ma probabilmente due significati: può rappresentare sia un comando per l’editor in modalità di comando, che una normale lettera che si vuole inserire nel testo quando siamo in modalità di inserimento.
Indice
Avviare vim
Comunemente vim viene lanciato per editare un singolo file con:
vim <nomefile>
Se si lancia senza specificare nessun file vim apre un documento vuoto.
Muoversi attraverso il testo
In modalità di comando usare:
H oppure ⇦ Muovi cursore a sinistra
J oppure ⇩ Muovi cursore in basso
K oppure ⇧ Muovi cursore in alto
L oppure ⇨ Muovi cursore a destra
0 Muovi il cursore all’inizio della linea
$ Muovi il cursore alla fine della linea
G G Muovi il cursore all’inizio del documento
Shift + G Muovi il cursore alla fine del documento
Ctrl + F Muovi il cursore una pagina in avanti
Ctrl + B Muovi il cursore una pagina indietro
Anteponi un comando di movimento del cursore con un numero per ripeterlo. Per esempio, 4 J muove il cursore in basso di 4 linee.
La modalità di inserimento del testo
command mode –> insert mode
Per passare dalla modalità di comando alla modalità di inserimento/aggiunta del testo : usa una delle seguenti lettere: a/A/i/I/o/O (vedi dettagli sotto)
A Si predispone ad inserire il testo alla posizione del cursore
Shift + A Si predispone ad inserire il testo alla fine della riga corrente
I Si predispone ad inserire il testo prima della posizione attuale del cursore
Shift + I Si predispone ad iserire il testo all’inizio della linea corrente
O Crea una nuova riga sotto la riga corrente e si predispone ad inserire il testo lì
Shift + O Crea una nuova riga sopra la riga corrente e si predispone ad inserire il testo lì
Quando VIM si trova in insert mode i tasti assumono la loro normale funzionalità permettendo l’editing del testo.
insert mode –> command mode
Per uscire dalla modalità di inserimento e tornare alla modalità di comando premere il tasto Esc
Operazioni sui file
: W Salva il testo
: W nuovofile Salva il testo nel file nuovofile
: W Q Salva il file ed Esce da vim
: Q Esce da vim (fallisce se ci sono modifiche non salvate)
: Q ! Esce da vim
Selezione del testo (modalità visuale)
In VIM esiste una terza modalità che permette di selezionare il testo in vari modi ed è la modalità visuale
command mode –> visual mode
Per passare dalla modalità di comando alla modalità visuale premere il tasto V
Dopo esser passati in visual mode, selezionare il testo e utilizzare ad esempio taglia o copia, come descritto di seguito.
Una variante interessante della modalità visuale è quella detta per blocchi che permette di selezionare blocchi di testo anzichè intere linee.
Per attivare la modalità visuale per blocchi usare: Ctrl + V
visual mode –> command mode
Per uscire dalla modalità visuale e tornare alla modalità di comando premere il tasto Esc
Taglia, Copia e Incolla
In modalità visuale, dopo aver selezionato il testo:
Y Copia il testo selezionato
D Cancella (Taglia) il testo selezionato
In modalità di comando:
Y Y Copia la linea corrente
P Incolla dopo il cursore
Shift + P Incolla prima del cursore
D D Cancella (Taglia) la linea corrente
Cerca e Sostituisci
/ pippo Cerca la parola pippo nel testo (dalla posizione del cursore in avanti)
? pippo Cerca la parola pippo nel testo (dalla posizione del cursore all’indietro)
N Ripeti Ricerca nella stessa direzione
Shift + N Ripeti Ricerca nella direzione inversa
: % S / vecchio / nuovo / G Sostituisci la parola vecchio con la parola nuovo in tutto il file
Conclusioni
VIM è un editor presente in quasi tutte le ditribuzioni di Unix/Linux ed è utile conoscerlo per tutte quelle situazioni in cui occorre editare un file di testo. Qui ho raccolto un elenco dei comandi più comuni ma vim ha tante altre funzionalità che permettono un trattamento del testo evoluto. Per un elenco più esaustivo dei comandi di VIM voglio segnalare un utile cheat sheet di rapida consultazione:
Vim Cheat Sheet
VIM the editor (sito ufficiale)