vi è il programma standard per la modifica di files di testo per UNIX ed essere in grado di usarlo è essenziale per gli amministratori di sistema.

Esistono svariate versioni (o cloni) di vi disponibili: ad esempio,sui sistemi Gnu/Linux, vi e' in realta' l'editor vim, avviabile digitando vi in quanto collegamento simbolico al reale eseguibile.

L'editor puo' lavorare in 3 differenti modalita':

  • Modalita' comando visuale
  • Modalita' riga di comando
  • Modalita' testo

Appena avviato vi ci si trova subito in modalita' comando visuale. In questa modalita' e'  possibile utilizzare 4 comandi speciali per individuare parole nel testo o per passare a comandi piu' complessi:

  • / ricerca in avanti
  • ? ricerca inversa
  • n prosegui la ricerca nella direzione in cui e' stata fatta l'ultima
  • : comandi ex (ex e' l'editor di linea di vi)

Nella modalita' comando, tutto quello che viene digitato viene interpretato dall'editor come comando e non come testo da aggiungere al file.

Digitando i due punti (:), il cursore si spostera' sull'ultima riga dello schermo in attesa che digitiate un comando e premiate INVIO per eseguirlo.

Per inserire testo nel file, e' necessario digitare uno dei comandi necessari al passaggio in modalita' testo:

  • i inserisce il testo prima del cursore
  • a inserisce il testo dopo il cursore
  • I inserisce il testo all'inizio della linea corrente
  • A inserisce il testo alla fine della linea corrente

Digitato uno di questi comandi, l'editor passera' quindi in modalita' testo e tutto quello digitato sulla tastiera verra' interpretato come testo, aggiunto al buffer e visualizzato sullo schermo.

Per uscire dalla modalita' testo e' sufficiente premere il tasto Escape (ESC).

Ecco un prospetto dei comandi principali

Spostarsi all'interno di un file

Comando Funzione 
Sposta il cursore alla riga successiva
kSposta il cursore alla riga precedente
hSposta il cursore di un carattere a sinistra
lSposta il cursore di un carattere a destra
CTRL+fSposta il cursore alla pagina successiva
CTRL+bsposta il cursore alla pagina precedente

Cancellare testo

Comando Funzione 
DCancella dal cursore alla fine della riga
ddCancella la riga sulla quale si trova il cursore
xCancella il carattere sotto il cursore

Spostare testo

L'operazione di spostamento del testo all'interno di un file richiede i seguenti passaggi:

  1. Posizionare il cursore all'inizio della prima riga del blocco di testo da spostare o copiare.
  2. Digitare ma per contrassegnare la posizione con la lettera a
  3. Posizionare il cursore all'inizio dell'ultima riga del blocco di testo da spostare o copiare
  4. Digitare mb per contrassegnare la posizione con la lettera b.
  5. Posizionare il cursore all'inizio della prima riga prima della quale si desidera inserire il blocco di testo
  6. Digitare 'a,bm. se si desidera spostare il blocco oppure 'a,bt. se si desidera copiarlo. Importanti la virgoletta all'inizio del comando e il punto alla fine.

Altri comandi basilari

Comando Funzione 
aInserisce il testo dopo il cursore
AInserisce il testo alla fine della riga corrente
lInserisce il testo all'inizio della riga corrente
iInserisce il testo prima del cursore
oInserisce una riga vuota sotto la riga corrente
OInserisce una riga vuota sotto la riga corrente
CModifica fino alla fine della riga corrente
ccModifica la riga corrente
cwModifica la parola
JUnisce la riga corrente con la successiva
rxSostituisce il carattere sotto il cursore con x
~Cambia il carattere sotto il cursore da maiuscolo a minuscolo e viceversa
$Sposta il cursore alla fine della riga corrente
^Sposta il cursore all'inizio della riga corrente
mxContrassegna la posizione corrente del cursore con la lettera x
CTRL+lRidisegna lo schermo
:e nome-fileApre il file nome-file
:qEsce dall'editor
:q!Esce dall'editor senza salvare le modifiche
:r nome-fileLegge il file nome-file e lo inserisce dopo la linea corrente
:w nome-fileSalva il buffer nel file nome-file
:wqSalva le modifiche ed esce dall'editor
/stringaCerca l'occorrenza successiva della stringa
?stringaCerca l'occorrenza precedente della stringa
nProsegue con l'operazione di ricerca precedente
uAnnulla l'ultimo comando
ESCPassa dalla modalita' testo alla modalita' comando visuale