Comandi di vi

Allo scopo di imparare i comandi 'vi', occorre provarli.

Si consiglia di produrre un file su cui esercitarsi, p.es. come segue:

man bash > bash1.txt
vi bash1.txt

Comandi di inserimento

  • a - dopo il carattere corrente
  • i - prima del carattere corrente
  • A - a fine linea
  • I - a inizio linea, prima del primo carattere significativo
  • o - in una nuova linea sotto
  • O - in una nuova linea sopra

Comandi di movimento semplice

I comandi di movimento sono molto importanti.

Vi Mov

Tramite i comandi di movimento si compiono le operazioni di cut, copy e paste.

Comandi di movimento avanzato

Non sono indispensabili di primo acchito ma:

  • risparmiano il numero di tasti digitati
  • sono ideali per l'inserimento in macro

Vi MovAv

Comandi di salvataggio

Vi salv

I comandi di salvataggio sono per la maggior parte dei comandi ex. Quando si digitano i due punti come comando, sientra in modalità ex:

  • l'ultima linea del video contiene il comando
  • sono possibili comandi anche lunghi terminati da Invio
  • per eventualmente interrompere il comando, battere Esc

Comandi di salvataggio avanzato

Sono derivati dall'editor ex. Quando si preme : in modalità comando, si apre l'ultima linea dello schermo ed è possibile editare un comando esteso.

  • :w file - salva tutto il file corrente con altro nome
  • :1,5w file - salva da riga 1 a 5
  • :1,.w file - salva da riga 1 a riga corrente
  • :.,+5w file - salva da riga corrente fino a 5 righe dopo
  • :.,’aw file - salva da riga corrente a riga marcata con a
  • :r file - inserisci file esterno dopo riga corrente

Operazioni sui file

Vi Ops

Vi non sta editando il file vero, ma una sua copia. In caso di crash di sistema, al boot successivo è di solito possibile recuperare la precedente sessione di editazione del file temporaneo.

Il 'save' è in realtà un commit. tutti i cambiamenti effettuati vengono finalizzati nel file vero. Tutti i buffer di undo vengono azzerati.

Il salvare con altro nome è un'operazione diversa da altri editor: dopo tale operazione non abbiamo cambiato il nome del file corrente, ma prodotto uno snapshot sul file indicato. Stiamo ancora lavorando sul file originale.