Vi e Vim

“visual editor”
Ci aono 10 tipi di persone: quelli che capiscono il codice binario e quelli no.
Ci sono due tipi di amministratori e programmatori Unix: quelli che usano Vi e quelli che credono sia un numero romano.
- E' un editor destinato ai programmatori
- Non è un word processor
- Concetto di linea e carattere corrente, non di paragrafo
Il comando di lancio è:
vi [opzioni] [file]
Vi sono più opzioni, ma l'unica e raramente usata è:
vi -r file– recupera un file dopo un crash. Praticamente i crash non avvengono mai.
Un link simbolico a vi èview file – apre il file in modo read-only
L'editor 'vi' è una evoluzione dell'editor 'ex' (extended editor)
che esisteva prima che vi fossero i terminali, ovvero quando ancora si interagiva col sistema da console come macchina da scrivere.
I terminali apparsi a partire dagli anni '80 erano così tanti e di tante marche diverse che non ci si poteva attendere un normale layout di tasti come al giorno d'oggi.
Gli unici tasti su cui si poteva contare erano:
- i tasti della normale macchina da scrivere
- il tasto Escape che inviava sequenze di caratteri di controllo al terminale
E' stato quindi deciso di produrre un editor modale.
Con l'avvento di Linux, tipicamente usato da PC, quindi con tastiera uniforme, è stato deciso di introdurre un nuovo editor, più moderno e che comprendesse p.es. le frecce, ma che fosse completamente compatibile col 'vi'.
Dopo alcuni tentativi andati a vuoto, il prodotto si è stabilizzato nell'editor 'vim'.
vim - vi improved
Molti più comandi e complessità del vi, ma i comandi di base sono gli stessi
In RHEL sono installati sia vi che vim. Ogni nuovo utente configurato riceve d'ufficio un alias che invoca vim quando si digita vi.
Modi di vi
Vi è un editor modale. Due modalità:
- comando - ogni lettera o combinazione corrisponde ad un comando dell'editor
- inserimento (editazione) - i tasti digitati finiscono direttamente nel file in editazione

All'apertura di un file ci si trova in modalità comando.
Per passare in modalità editazione c'è un numero limitato di comandi, tra cui il più comune è i (inserimento).
Per tornare in modalità comando battere il tasto Esc (escape).
Se im modalità comando si batte il tasto Esc, si rimane in modalità comando.
vi minimo
Per i timorosi di apprendere troppi comandi strani, un semplice procedimento/trucco permette di usare 'vi' facilmente.
Aprire un file procedura shell per l'editazione:
vi file.sh
- Il primo comando deve essere
i(insert)- Compare in basso a sinistra la scritta
-- INSERT -- - Siamo in modalità editazione
- Compare in basso a sinistra la scritta
- Navigare normalmente con le frecce
- Editare come su un editor normale
Al termine:
- Digitare
Esc. Scompare la scritta-- INSERT --- Siamo in modalità comando
- Per salvare ed uscire:
:wq ENTER- Il digitato compare sull'ultima linea
- Per uscire senza salvare:
:q! ENTER - Per salvare e proseguire:
:w ENTER i
Vi: Terminologia
Essendo un editor e non un word processor, 'vi' ha il concetto di carattere corrente e linea corrente, ma non di paragrafo corrente

Il cursore è esattamente sopra un carattere e non nell'intervallo tra due caratteri. Il cursore può essere rappresentato come underscore, o come un blocco lampeggiante.
Il fatto che il cursore sia proprio sopra un carattere, e su un alinea, conduce naturalmente al concetto di 'dopo' e 'prima' del carattere, e 'dopo' e 'prima' della linea.
E' prevista una differenza tra il bordo sinistro assoluto di una linea (colonna zero) e il primo carattere significativo della linea indentata.