lun 29 aprile 2024 - Lo Sviluppatore  anno VI

VIM: l’editor di testo che tutti i programmatori dovrebbero conoscere

vim
Condividi

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.

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

 

lamp activeAnteponi 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)

 

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Top