TCOProject™ Quick Reference - vi
L'editor vi è lo strumento presente in tutti i sistemi Unix®. L'utilizzo di questo editor full text è indispensabile per chi opera in questi ambienti. Di seguito sono riportate le funzioni principali che permettono un utilizzo semplice ma efficace.
IMPOSTAZIONE TABULAZIONI E INDENTAZIONE AUTOMATICA
Per impostare le tabulazioni o più in generale differenti parametri si può agire in due maniere: Attraverso la variabile ambiente EXINIT oppure tramite il file di configurazione ".exrc". Se stiamo lavorando con la derivazione vim il file da modificare o creare sarà ".vimrc" con la stessa sintassi del vi almeno per la parte riguardante la tabulazione e l'indentazione.
Ipotizziamo di voler impostare sia la tabulazione sia lo shift (ottenibile con >> oppure <<) a 4 caratteri di spaziatura e l'auto indentazione.
Variabile ambiente:
EXINIT='set ai ts=4 sw=4'; export EXINIT
Oppure attraverso il file ".exrc" (oppure ".vimrc") nella HOME directory dell'utente che conterrà:
set autoindent
set tabstop=4
set shiftwidth=4
UTILIZZO
L'editor vi ha tre stati di funzionamento: stato command, stato edit, command line. Di norma durante l'utilizzo si rimane nello stato command, questo stato si raggiunge premendo il tasto “escape”. Il tasto “escape” è il tasto più utilizzato proprio perché riporta l'editor in stato di command. Per una corretta navigazione del cursore sul testo è opportuno essere in stato command e  utilizzare i tasti h,j,k,l minuscoli. Questi tasti non producono escape sequence e quindi verranno interpretati correttamente da qualsiasi terminale e tastiera
.
COMMAND (EDIT)
i =inserisce caratteri dalla posizione corrente del cursore (più utilizzato)
I =inserisce caratteri portando il cursore all'inizio della riga
a =inserisce caratteri dal carattere successivo  la posizione del cursore
A =inserisce caratteri portando il cursore al termine della riga corrente
o =inserisce caratteri in una nuova riga al di sotto della riga corrente
O =inserisce caratteri in una nuova riga al di sopra della riga corrente
cw =cambia una parola (change word)
s =entra in inserimento cambiando il carattere corrente
J =unisce alla riga corrente la linea inferiore (join)
.(punto) =ripete l'ultimo comando
COMMAND (MOVEMENT)
$ =porta il cursore alla fine della riga e rimane in stato command
0(zero) =porta il cursore all'inizio della riga e rimane in stato command
w =sposta il cursore all'inizio della parola successiva
e =sposta il cursore alla fine della parola da sinistra verso destra
b =sposta il cursore all'inizio della parola precedente
G =sposta il cursore alla fine del testo
COMMAND (CUT, COPY, PASTE)
dd =cancella la riga corrente
yy =copia la riga corrente
yw =copia la parola corrente dalla posizione del cursore
p =incolla, la riga/parola copiata dopo la riga/parola in cui è posizionato il cursore
P =incolla, la riga/parola copiata prima della riga/parola in cui è posizionato il cursore
COMMAND (SEARCH, REPLACE)
/valore_da_ricercare = ricerca il valore nel testo dal punto in cui è posizionato il cursore
n = ricerca il prossimo valore corrispondente all'ultima ricerca effettuata
N = ricerca il precedente valore corrispondente all'ultima ricerca effettuata
:1,$s/source/target/g =cambia la scritta sourcein target dal primo carattere all'ultimo carattere anche se compare più volte nel testo
COMMAND LINE
: =il cursore si sposta in basso e il vi si predispone ad accettare comandi come ad esempio il search e replace
:wq =scrive ed esce
:w! =forza la scrittura
:q =esce senza salvare se non sono state fatte modifche al testo
:q! =esce senza salvare perdendo eventuali modifiche effettuate
:e nome_file =edita un file al posto del corrente
:e# =edita il file precedente
:n =edita il file successivo