Vim, l'editor di riferimento

Loris Tissino

15 luglio 2009

Introduzione a VIM

VIM, o VI improved, è un editor di testo che migliora l'editor vi, a sua volta un programma che ha migliorato l'editor a righe ed facendolo diventare un editor visuale (caratteristica da cui deriva il nome).

Vi è l'unico editor che è presente in praticamente tutte le versioni di Unix e Linux, ed è spesso impostato come editor di default per le operazioni di amministrazione.

Caratteristica importante di Vi è che si tratta di un programma che opera in base alla modalità corrente: la pressione dello stesso tasto ha significati diversi a seconda del contesto operativo.

Le basi

Si può iniziare a capire come funziona VIM con il programma vimtutor, che avvia un esercitazione a copertura dei seguenti aspetti:

Ripetizione dell'ultimo comando

Un qualsiasi comando complesso appena impartito può essere ripetuto. Ad esempio, il comando "vai alla fine della riga, elimina l'ultimo carattere, vai a capo, aggiungi le graffe di apertura e chiusura" può essere impartito per la prima di queste righe e poi successivamente senza alcuna fatica digitando semplicemente il carattere punto.

void function_one(int a, int b);
void function_two(char a, char *b);
void function_three(void);

diventa... (digitando la prima volta A, <backspace>, <newline>, {, }, <newline> e per le righe successive solo .):

void function_one(int a, int b)
{
}
void function_two(char a, char *b)
{
} 
void function_three(void)
{
}

Corrispondenza delle parentesi

Il comando % sposta il cursore alla prima parentesi chiusa rilevante (e alla successiva pressione alla corrispondente aperta).

Ad esempio, digitando % con il cursore sopra la A, il cursore si sposta sopra la B:

  function_one(function_two());
           A                 B

Si può utilizzare questo fatto per "tagliare" il testo selezionato automaticamente selezionato con c%.

Modalità visuale

Le operazioni di selezione possono essere fatte in maniera agevole e chiara nella modalità visuale (a carattere con v, a linea con V, a blocco con <control>-V.

Macro e registri

Si può registrare una macro premendo q seguito da una lettera (al termine della registrazione, si preme di nuovo q). Per eseguire la macro, si preme @ e la lettera corrispondente.

Quando si taglia un testo, questo viene posto in un registro senza nome. Se lo si desidera, si possono usare i registri con nome da a a z mediante, ad esempio, "cdd (taglia la riga corrente e mettila nel registro c). Se si vuole accodare il testo al registro, si usa la lettera maiuscola per indicare il registro stesso. Per incollare, si può usare il corrispondente "cp.

Selezione primaria e clipboard di sistema

La selezione primaria e la clipboard di sistema sono dei registri speciali, accessibili con il nome * e +, rispettivamente.

Ad esempio, per copiare due righe come selezione primaria si può digitare "*2yy (il contenuto della selezione primaria è reso disponibile nelle altre applicazioni Xwindow premendo il pulsante centrale del mouse).

Modalità last-line

La modalità last-line è quella in cui si impartiscono comandi complessi che necessitano di parametri da specificare (es. ricerche di testo, sostituzioni, impostazione opzioni).

In modalità last-line vale una history locale.

Ricerche

Le ricerche (basate sulle espressioni regolari) possono avvenire:

Con il comando :set hlsearch si fa in modo che tutte le occorrenze vengano evidenziate, con il comando :set incsearch si vedono le occorrenze "al volo".

Sostituzioni

La sostituzione di un testo (trova e sostituisci) avviene:

Impostazione di opzioni

Le opzioni si possono impostare:

Divisione della finestra

Una finestra si può dividere orizzontalmente (:split) o verticalmente (:vsplit). Per passare da una sottofinestra all'altra si deve premere due volte <ctrl>-W. Utili sono poi i comandi :close e :only.

Alcune opzioni interessanti

Alcune opzioni di VIM che potrebbe valere la pena di impostare:

Altre cose utili (1)

Varie cose che possono tornare utili:

Altre cose utili (2)

Alcune cose che si possono fare:

Per maggior aiuto

Nel caso in cui si vogliano sfruttare al meglio le possibilità di VIM, si può consultare la guida in linea: