Mettiamola cosi, ormai sono talmente vecchio, che ho sentito il bisogno di riproporre la tabella riassuntiva, che si riferisse solamente ai concetti e comandi per usare l’editor VI, nuda e cruda tanto per avere un promemoria quando la memoria mi fa brutti scherzi e non ho il man istallato. ;)
$ vi nome_file
INDIRIZZI EX:
. riga corrente
$ ultima riga
numero decimale n n-ima riga
/RE/ prima riga seguente la corrente che è soddisfatta dalla RE (espressione regolare)
CAMBIO MODO:
comandi -> inserzione: comandi i,I,a,A,o,O,s,c,C
inserzione -> comandi: <ESC>
comandi -> comandi EX: :
comandi EX -> comandi: nulla o <RETURN>
COMANDI:
Uscita dall’editor:
ZZ uscita dall’editor con scarico buffer se modificato
:wq<RETURN> uscita dall’editor con scarico buffer
:q!<RETURN> uscita dall’editor senza scarico buffer
Inserzione:
i pone in inserzione prima del cursore
a pone in inserzione dopo il cursore
I pone in inserzione prima del primo non <SPAZIO> o <TAB> della riga
A pone in inserzione dopo l’ultimo carattere della riga
o apre una nuova riga sotto la corrente e si pone in inserzione
O apre una nuova riga sopra la corrente e si pone in inserzione
<CTRL-V> escape per inserzione di caratteri speciali (in modo inserzione)
Spostamento:
h sposta a destra di un carattere
l sposta a sinistra di un carattere
j sposta alla riga seguente
k sposta alla riga precedente
<CTRL-H> come h
<SPAZIO> come l
<CTRL-J> come j
<CTRL-N> come j
<CTRL-P> come k
0 (zero) porta al primo carattere della riga
^ porta al primo carattere non <SPAZIO> o <TAB> della riga
$ porta all’ultimo carattere della riga
f porta sulla prima occorrenza, verso destra, del carattere richiesto
F porta sulla prima occorrenza, verso sinistra, del carattere richiesto
t porta al carattere che precede la prima occorrenza, verso destra, del carattere richiesto
T porta al carattere che segue la prima occorrenza, verso sinistra, del carattere richiesto
; continua la ricerca iniziata da un comando f o F
, continua la ricerca iniziata da un comando f o F, ma nella direzione opposta
w sposta il cursore all’inizio della prossima parola
W sposta il cursore all’inizio della prossima parola
e sposta al prossimo fine parola (w)
E sposta al prossimo fine parola (W)
b sposta al precedente inizio parola (w)
B sposta al precedente inizio parola (W)
<RETURN> porta al primo non <SPAZIO> o <TAB> della riga seguente
+ come <RETURN>
– porta al primo non <SPAZIO> o <TAB> della riga precedente
<CTRL-F> sposta di una pagina in avanti
<CTRL-B> sposta di una pagina all’indietro
<CTRL-D> sposta di mezza pagina in avanti
<CTRL-U> sposta di mezza pagina all’indietro
G porta all’n-ima riga (1G all’inizio, G alla fine buffer)
/ ricerca una RE (espressione regolare) in avanti nel buffer ciclico
? ricerca una RE all’indietro nel buffer ciclico
n ricerca la prossima occorrenza della RE ricercata con ‘/’ o ‘?’ nella direzione corrente
N ricerca la prossima occorrenza della RE ricercata con ‘/’ o ‘?’ nella direzione opposta alla corrente
Cancellazione:
x cancella il carattere sotto il cursore
X cancella il carattere a sinistra del cursore
d cancella dalla posizione del cursore fino alla posizione definita dal seguente comando di movimento (es. dw cancella una parola)
dd cancella l’intera riga corrente
D cancella dalla posizione corrente fino al termine della riga
Sostituzione:
s cancella N caratteri e si pone in inserzione
c cancella l’unità di testo indicata nel successivo comando di spostamento e si pone in inserzione (es. cw sostituisce una parola)
C sostituisce dalla posizione corrente fino al termine della riga
cc sostituisce tutta la riga corrente
Varie:
<CTRL-L> refresh video (in modo comandi)
p ripristina il testo rimosso nell’ultima cancellazione, dopo il cursore
P ripristina il testo rimosso nell’ultima cancellazione, prima del cursore
. ripete l’ultimo comando che ha modificato il buffer
u annulla l’effetto dell’ultimo comando che ha modificato il buffer
U riporta la riga al suo stato originale
Comandi EX:
:g/RE/s//stringa/g<RETURN> sostituisce in tutto il buffer la RE (espressione regolare) con la stringa
:r nomefile<RETURN> legge il file richiesto, nel buffer
:r !comando<RETURN> legge l’uscita del comando UNIX, nel buffer
:range d<RETURN> cancella l’intervallo di righe richiesto
:range w nomefile<RETURN> scrive nel file richiesto l’intervallo di righe specificato
:set all<RETURN> mostra lo stato di tutte le opzioni modificabili con :set
:set ic<RETURN> rende insensibile l’editor al case dei caratteri nelle ricerche
:set noic<RETURN> rende sensibile l’editor al case dei caratteri nelle ricerche
:set magic<RETURN> pone l’editor nel modo magic (tipo di convenzione di scrittura delle RE)
:set nomagic<RETURN> pone l’editor nel modo nomagic (tipo di convenzione di scrittura delle RE)
:set nu<RETURN> alla sinistra delle righe viene visualizzato il loro numero
:set nonu<RETURN> alla sinistra delle righe non viene visualizzato il relativo numero