Editor Vi

VI ha due modalita' di funzionamento: il modo comando (command) e il modo inserimento (input). In modalita' inserimento ogni parola verra' inserita direttamente nel file. E' possibile usare molti comandi per entrare in questa modalita' il piu' comune e' i (insert). Entrare in modalita' comando e' possibile in qualsiasi momento premendo il tasto ESC, ogni lettera verra' interpretata come un comando.

La funzione piu' semplice di un editor e' di spostare il cursore nel testo. Ecco alcuni altri comandi di spostamento:

  • h : sposta il cursore uno spazio a destra
  • j : sposta il cursore una linea in basso
  • k : sposta il cursore una linea in alto
  • l : sposta il cursore una linea a destra
  • gg : inizio file
  • G : fine del file

Modificare il testo

  • i : Inserisce del testo a sinistra del cursore
  • x : Cancella un carattere da sotto il cursore
  • u : Annulla l'ultimo comando
  • dd : Cancella la riga intera

Copiare del testo implica tre passi principali:

  • Yanking (copia) del testo in un buffer.
  • Moving (spostamento) del cursore alla posizione destinata
  • Pasting (incollamento) del testo nel buffer di modifica.
  • yy Sposta una copia della linea corrente al buffer senzanome.
  • p Incolla dal buffer senzanome a DESTRA del cursore

Ricerca e sostituzione del testo

  • /<testo> cerca il testo dalla posizione corrente verso il basso (con n si va avanti nella ricerca)
  • ?<testo> cerca il testo dalla posizione corrente verso l'alto

Sostituzione:

:[range]s[ubstitute]/pattern/string/[flags] [count]

  • [c] Confirm each substitution.
  • [g] Replace all occurrences in the line.
  • [i] Ignore case for the pattern.

esempi:

:%s/old-text/new-text/g  
:/I/We/gi
:1,10s/helo/hello/g

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