Unix – vi editor – comandi base
By marzio on ago 09, 2010 with Commenti 0
Recentemente discutevo con un collega che doveva modificare un file su un sistema con hp-ux. Non era capace di usare il vi e si giustificava dicendo che su Ubuntu usava l’editor nano.
Capisco che su Ubuntu, e Linux in generale, ci sia ogni tipo di editor in grado di soddisfare tutti i gusti ed esigenze, ma quando ci si ritrova ad usare gli unix classici come hp-ux o solaris, le cose non stanno così.
I vari unix possono avere uno o più editor aggiuntivi, più o meno avanzati, ma quello che è comune a tutti e che si trova su ogni sistema è il vi.
E’ un editor difficile da usare, perché ha dei comandi per niente intuitivi, ed in linea di massima non esiste nessun help. (a parte le pagine del man).
Si tratta però di un editor molto potente, e ritengo che valga comunque la pena di imparare ad usarlo.
Le funzioni sono tantissime, di seguito riassumo i comandi base:
per entrare nell'editor da UNIX {vi nomefile} per ripetere n volte qualsiasi op. di comando {ncomando} per uscire dall'editor salvando tutte le modifiche {ZZ} o {:wq +invio} senza salvare le modifiche {:q! +invio} quando non sono state fatte modifiche {:q +invio} salvando senza poi uscire dall'editor {:w +invio} per scrivere il file in un altro file {:w nomefile +invio} per inserire un testo prima del cursore {i...testo..+esc} all'inizio della linea {I...testo..+esc} dopo il cursore {a...testo..+esc} alla fine della linea {A...testo..+esc} per inserire una riga prima della linea corrente {o...testo..+esc} dopo la linea corrente {O...testo..+esc} per cancellare dei caratteri sotto al cursore {x} alla sinistra del cursore {X} per cancellare più (n) caratteri {nx} o {nX} per unire la linea corrente alla successiva {J} per trovare una stringa in un file cerca in avanti a partire dal cursore {/...stringa../ +invio} cerca indietro a partire dal cursore {?...stringa..? +invio} ripete il comando di ricerca in avanti {n} ripete il comando di ricerca indietro {N} per cercare un carattere su una linea cerca in avanti a partire dal cursore {fcarattere} cerca indietro a partire dal carattere {Fcarattere} ripete il comando di ricerca carattere {;} per sostituire un carattere con un altro {rnuovocarattere} per sostituire un singolo carattere con un testo {s.. .testo..+esc} per sostituire n caratteri con un testo {ns...testo..+esc} per sostituire un carattere a volta con un testo {R....testo..+esc} per canc. tutte le modifiche fatte nella linea {U} per canc.l'ultima modifica fatta {u} per posizionarsi sulla pagina successiva {ctrlF} per posizionarsi sulla pagina precedente {ctrlB} per posizionarsi al primo carattere riga succ. {ctrlM} o {+} per posizionarsi la primo carattere riga prec. {-} per posizionarsi all'inizio della linea {O} per posizionarsi alla fine della linea {$} per muoversi avanti di una parola {w} per muov. avanti di una parola ignorando punteg. {W} per muoversi alla fine della prossima parola {e} per muov. fine prossima parola ignor. punteg. {E} per muoversi indietro di una parola {b} per muov.indietro di una prola ignor. punteg. {B} per spostare la schermata sulla linea successiva senza muovere il cursore {ctrlE} per spostaare la schermata sulla linea precedente senza muovere il cursore {ctrlY} per posizionarsi mezza pagina indietro {ctrlU} per posizionarsi mezza pagina avanti {ctrlD} per spostarsi di uno spazio a sinistra {h} per spostarsi di uno spazio a destra {l} per posizionarsi al centro schermata {M} per posizionarsi all'inizio schermata {H} per posizionarsi al fondo schermata {L} per spostarsi in alto sulla stessa colonna {k} o {ctrlP} per spostarsi in basso sulla stessa colonna {j} o {ctrlN} per cancellare un'intera riga {dd} per cancellare dal fondo della riga {D} per spostarsi all'inizio del file {1G} per sportarsi alla fine del file {G} per spostarsi alla linea n del file {nG} per shiftare la linea corrente a sinistra {<<} per shiftare la linea corrente a destra {>>} per shiftare tutte le linee da quella corrente fino alla fine dello schermo verso sinistra {<L} per shiftare tutte le linee da qualla corrente fino alla fine dello schermo verso destra {>L}
Filed Under: unix
About the Author: Marzio