10.3 Veloce guida per vi

Tutti i comandi in vi(1) sono preceduti dalla pressione del tasto escape. Ogni volta che si deve intraprendere un nuovo comando si deve utilizzare il tasto di escape. Diversamente da dove indicato, vi(1) è case sensitive (sensibile alla differenza minuscolo e maiuscolo).

Comandi movimento cursore:

(n) indica un numero ed è opzionale

(n)h (n) spazi a sinistra
(n)j (n) spazi giù
(n)k (n) spazi su
(n)l (n) spazi a destra

(Generalmente funzionano anche i tasti freccia)

Ctrl+F avanti di una schermata
Ctrl+B indietro di una schermata
Ctrl+D giù di mezza schermata
Ctrl+U su di mezza schermata

(Ctrl indica il tasto control; il case sensitive non è importante)

H all'inizio della linea superiore della schermata
M all'inizio della linea mediana della schermata
L all'inizio dell'ultima linea della schermata
G all'inizio dell'ultima linea del file
(n)G all'inizio della linea (n)
0 (zero) all'inizio della linea
$ alla fine della linea
(n)w avanti (n) parole
(n)b indietro (n) parole
e fine della parola

Inserimento testo:

i inserimento testo prima del cursore
a aggiunta testo dopo il cursore (non sovrascrive altro testo)
I inserimento testo all'inizio della linea
A aggiunta testo alla fine della linea
r sostituisce il carattere posto sotto il cursore con il prossimo carattere digitato
R sovrascrive i caratteri fino alla fine della linea (o fino a quando il tasto escape viene digitato per cambiare comando)
o (alpha o) inserisce una nuova linea dopo la linea corrente per inserire del testo
O (alpha O) inserisce una nuova linea prima della linea corrente per inserire del testo

Cancellazione testo:

dd cancella la linea corrente
(n)dd cancella (n) linee
(n)dw cancella (n) parole
D cancella dal cursore fino alla fine della linea
x cancella il carattere corrente
(n)x cancella (n) caratteri
X cancella il carattere precedente

Comandi di modifica:

(n)cc modifica (n) caratteri sulla linea fino alla fine della linea (o fino a quando viene digitato il tasto escape)
cw modifica i caratteri di una parola fino alla fine della parola (o fino a quando viene digitato il tasto escape)
(n)cw modifica i caratteri delle prossime (n) parole
c$ modifica il testo alla fine della linea
ct(x) modifica il testo alla lettera (x)
C modifica il testo rimanente sulla linea corrente (fino a quando viene digitato il tasto escape)
~ modifica il minuscolo/maiuscolo del carattere corrente
J unisce la linea corrente a quella successiva
u annulla l'ultimo comando realizzato sulla linea corrente
. ripete l'ultima modifica
s sostituisce il carattere corrente con il testo digitato
S sostituisce la linea corrente con il testo digitato
:s sostituisce vecchie parole con nuove parole :<linee considerate> s/vecchio/nuovo/g
& ripete l'ultimo comando di sostituzione (:s)
(n)yy “strappa” (n) linee dal buffer
y(n)w “strappa” (n) parole dal buffer
p inserisce il testo eliminato o “strappato” dopo il cursore
P inserisce il testo eliminato o “strappato” prima del cursore

Manipolazione file:

:w (file) scrive i cambiamenti nel file specificato (file corrente di default)
:wq scrive i cambiamenti nel file corrente e conclude la sessione di editing
:w! (file) sovrascrive il file (file corrente di default)
:q esce dalla sessione di editing se non sono stati creati cambiamenti
:q! esce dalla sessione di editing e scarta eventuali cambiamenti non salvati
:n edita il prossimo file nella lista dell'argomento
:f (nome) modifica il nome del file corrente in quello specificato
:r (file) legge il contenuto del file specificato all'interno del corrente editing e alla corrente posizione del cursore (inserisce un file)
:!(comando) escape di shell
:r!(comando) inserisce il risultato del comando di shell specificato nella posizione corrente
ZZ scrive i cambiamenti nel file corrente ed esce

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.