Unix – vi editor – comandi base

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}
Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay

Filed Under: unix

Tags:

About the Author: Marzio

RSSComments (0)

Trackback URL

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.


*