Introduzione a VI e VIM

Introduzione a VI e VIM

L’editor VI (visual editor) è il più diffuso nell’ambiente UNIX e Linux.
La versione GNU di VI si chiama VIM, (Vi IMproved) ed è quella comunemente usata nelle distribuzioni Linux.
Per aprire vi ed editare un nuovo file basta digitare vi oppure vi nomefile nel secondo caso, se il file esiste viene aperto, se non esiste viene creato nuovo.

VI ha due modalità di funzionamento: il modo comando (command) e il modo inserimento (input).
In modalità inserimento ogni parola verrà inserita direttamente nel file. E’ possibile usare molti comandi per entrare in questa modalità il più comune è i (insert). Entrare in modalità comando è possibile in qualsiasi momento premendo il tasto ESC, ogni lettera verrà interpretata come un comando.

Lo screen editor “vi” viene lanciato con il seguente comando:

vi [-r] [+comando] [file1 [file2 … filen]]
dove:

-r opzione da utilizzare dopo un crash del sistema (per recuperare le modifiche non memorizzate
relative al file);
+comando apre la sessione dell’editor eseguendo il “comando” (sono significativi solamente i comandi di editor di linea).

Nel caso in cui si specifichino più nomi di file da editare, ‘vi’ entra in editing sul primo file indicato, e su richiesta (comando ‘:n’) passerà in ordine ai successivi.

Questo editor visualizza una schermata di file alla volta, permettendo di indirizzare il cursore con appositi comandi al punto (carattere, parola, frase, paragrafo, riga, …) dove si vuole inserire o aggiornare il testo.

Per un corretto funzionamento è indispensabile conoscere l’esatto tipo del terminale su cui si sta lavorando. Verrà quindi settata la variabile TERM con la sintassi propria del sistema su cui si
lavora; per default, la sintassi standard è:

TERM=type ; export TERM

dove “type” corrisponde ad un nome di terminale (con tutte le funzionalità ad esso legate) descritto nella libreria “terminfo”.

In fase di entrata in “vi”, compariranno sullo schermo le prime 24 righe del file richiamato (con “~” come primo carattere sulle righe vuote), e ci si troverà in COMMAND MODE.

Quest’ultimo è uno dei tre possibili stati dell’editor “vi”.COMMAND MODE Il cursore è posizionato sul testo, la tastiera è utilizzabile solo per richiedere l’esecuzione di comandi, e non per introdurre testo.
I caratteri digitati non vengono visualizzati.

INPUT MODE Tutti i caratteri digitati vengono visualizzati ed inseriti nel testo. Si passa in input mode ad
ogni richiesta di inserimento di testo.

DIRECTIVE MODE Ci si trova (tramite “:”) posizionati con il cursore nella linea direttive (l’ultima linea del video) e si possono richiedere a “vi” tutti i comandi per il controllo del file.

I passaggi di stato avvengono con i seguenti caratteri:

DIRECTIVE MODE —–> COMMAND MODE <RET>
COMMAND MODE —–> INPUT MODE oORia
INPUT MODE —–> COMMAND MODE <ESC>
COMMAND MODE —–> DIRECTIVE MODE :/?

All’interno del “vi” si è in grado di lanciare comandi appartenenti alla shell da cui è stato richiamato il “vi” stesso, tramite l’apposito escape alla shell (questo comando verrà trattato meglio più avanti):

:!comando

Per quanto riguarda le cancellazioni, ‘vi’ ha un singolo buffer senza nome, nel quale viene salvata l’ultima porzione di testo cancellata, nove buffer numerati (1 2 … 9) ed un insieme di buffer individuati dalle lettere dell’alfabeto (a b … z) a disposizione dell’utente. I buffer, in caso di editing di più
file in successione, non vengono cancellati nel passare da un file all’altro, permettendo così spostamenti di parte di testo tra file diversi. Naturalmente possono anche essere utilizzati per
cancellazioni e ripristini o per spostamenti di parti di testo all’interno di uno stesso file.

È importante ricordare che per ‘vi’:una parola è una qualsiasi sequenza di caratteri chiusa da
uno spazio;una frase di testo è una qualsiasi sequenza di caratteri chiusa da ‘.’, ‘!’ oppure ‘?’ seguiti da newline o da due spazi;un paragrafo è invece delimitato da una linea vuota.