Editor VIM
E' uno degli editor di testi più diffuso in ambito *nix, esistono anche gli eseguibili per MS Windows e Apple.
Si trova quasi sempre preinstallato nella maggior parte delle distro Gnu/Linux, ha il pregio di occupare pochissime risorse di sistema e di essere
altamente configurabile dall'utente. La versione (la 7.1 mentre scrivo) per Windows occupa appena 1,3Mb e non richiede alcuna installazione.
Ciò permette di inserirlo in una chiavetta usb e averlo sempre disponibile, ovunque siamo.
L'editor Vim è un editor modale. Ciò significa che si comporterà diversamente
a seconda del modo in cui vi trovate. I due modi principali si chiamano
Normal mode ed Insert mode. In Normal mode i caratteri che scrivete sono
comandi. In Insert mode gli stessi caratteri vengono inseriti come testo.
Comunque per maggiori informazioni e per reperire l'ultima versione disponibile è bene visitare il sito ufficiale.
Guida rapida ai comandi di VIM
Movimenti di base del cursore
k / j --> muovi il cursore in alto / basso
h / l --> muovi il cursore a sinistra / destra
w --> vai all'inizio della prossima parola
b --> vai all'inizio della parola precedente
e --> vai alla fine della parola successiva
W, B, E --> come per w,b,e ma delimitata da spazi
( / ) --> vai all'inizio della frase sul cursore / successiva
{ / } --> vai all'inizio del paragrafo sul cursore / successivo
0 / gm / $ --> vai all'inizio / metà / fine della riga sul cursore
^ --> vai al primo carattere "non spazio" della riga
+ --> vai al primo carattere "non spazio" della riga successiva
- --> vai al primo carattere "non spazio" della riga precedente
n| --> vai alla n-esima colonna della riga corrente
% --> cerca la prossima parentesi, commento, define
Inizio
Movimenti avanzati
G / 1G --> vai all'inizio / fine del file
n% --> posiziona il cursore al n% del file
nG --> vai alla riga n
H --> vai alla prima riga dello schermo
nH --> vai alla riga n dall'inizio dello schermo
M --> vai alla riga mediana dello schermo
L --> vai all'ultima riga dello schermo
[[ --> posiziona il cursore all'inizio della sezione precedente
]] --> posiziona il cursore all'inizio della sezione successiva
[] --> posiziona il cursore alla fine della sezione precedente
][ --> posiziona il cursore alla fine della sezione successiva
[( / ]) --> vai alla () non chiusa precedente / successiva
[{ / ]} --> vai alla {} non chiusa precedente / successiva
[* --> vai all'inizio del commento /**/ precedente
]* --> vai alla fine del commento /**/ successivo
CTRL e --> muovi lo schermo una linea in alto
CTRL y --> muovi lo schermo una linea in basso
CTRL b --> muovi lo schermo una pagina in alto
CTRL f --> muovi lo schermo una pagina in basso
z INVIO --> riga corrente come prima dello schermo
nz INVIO --> riga n del file come prima dello schermo
z. --> riga corrente come mediana dello schermo dello schermo
z- --> riga corrente come ultima dello schermo
z. / z- --> come z. e z- ma per riga generica n
Inizio
Intervalli di selezione
:n,m --> seleziona da riga n a riga m :. --> seleziona la riga corrente :$ --> seleziona la fine del file :'c --> utilizza il marcatore c :% --> seleziona tutte le righeInizio
Inserimento
i / a --> inserisci prima / dopo del cursore I / A --> inserisci all'inizio / alla fine della riga gI --> inserisci nella prima colonna o / O --> inserisci una nuova riga sotto / sopra la riga corrente notext ESC --> inserisce n volte il testo text digitato :r file INVIO --> inserisci il contenuto di file nel documento :r! comando INVIO --> esegui il comando comando con output nel documento :set ai INVIO --> attiva l'auto indentazione :set sw=n INVIO --> imposta a n i caratteri di indentazione << --> sposta a sinistra di un livello di indentazione >> --> sposta a destra di un livello di indentazione n<< / n>> --> come << o >> per n righe successiveInizio
Sostituzione
rc --> sostituzione del carattere sotto al cursore con il carattere c grc --> come per rc ma in modalità inserimento Rtext --> sostituisce i caratteri che seguono con text gRtext --> come Rtext ma in modalita inserimento s --> cancella un carattere ed entra in modalità inserimento S o cc --> cancella la riga corrente ed entra in modalità inserimento cw --> cancella fino a fine parola ed entra in modalità inserimento c$ o C --> cancella fino a fine riga ed entra in modalità inserimento ~ --> inverti case maiuscolo / minuscolo e avanza cursoreInizio
Cancellazione
x / X --> cancella il carattere sotto al / prima del cursore nx / nx --> come per x o X ma per n righe successive dw --> cancella fino alla fine della parola ndw --> cancella n parole seguenti d$ o D --> cancella fino alla fine della riga dd --> cancella tutta la riga ndd --> cancella n righe seguenti J --> unisce la riga che segue con quella corrente gJ --> come J senza modificare gli spazi nJ / ngJ --> come J o gJ ma per n righe :rd INVIO --> cancella le righe nell'intervallo r specificato :rd x INVIO --> muovi le righe nell'intervallo r nel registro xInizio
Copia ed Incolla
``x --> usa il registro x (a-z) per le operazioni di copia e incolla :reg INVIO --> mostra il contenuto di tutti i registri :reg x INVIO --> mostra il contenuto del registro x (a-z) yy o Y --> copia la riga corrente nel registro attuale p / P --> incolla il contenuto del registro prima / dopo il cursore ]p / [p --> come p / P ma con un livello di indentazione gp / gP --> come p / P con il cursore dopo il testo incollatoInizio
Trova e Sostituisci
fc / Fc --> prosegui / torna indietro fino a raggiungere il carattere c /stringa --> cerca in avanti la sequanza stringa ?stringa --> cerca indietro la sequanza stringa n / N --> ripeti la ricerca nella stessa / inversa direzione # --> cerca una precedente occorrenza della parola al cursore * --> cerca una occorrenza successiva della parola al cursore g# / g* --> come # e * ma anche con occorrenze parziali :set ic INVIO --> non considerare maiuscole o minuscole :set noic INVIO --> considera maiuscole e minucole :rs/trova/cambia/opzioni --> ricerca nel range r la stringa trova e sostituisci ogni occorrenza con la stringa cambia. Opzioni possono essere g per la sostituzione di tutte le occorrenze, c per la conferma di ogni singola sostituzione, p per visualizzare le linee modificate. Il range r può contenere una linea di inizio e fine (es: 1,10) oppure simboli come . per la linea corrente e $ per fine file. & --> ripeti l'ultimo comando si selezione s :g/seleziona/comando INVIO --> trova la stringa seleziona e, per ogni riga che la contiene, esegui comando :g/seleziona/s/trova/cambia INVIO --> trova la stringa seleziona e, per ogni riga che la contiene, sostituisci trova con cambiaInizio
Annullamento comandi
u --> annulla l'effetto dell'ultimo comando U --> riporta la linea corrente alla situazione precedente . --> ripeti ultima modificaInizio
Gestione file
:w file INVIO --> salva il documento con nome file :w >> file INVIO --> inserisci il contenuto del doc corrente all fine di file :n,mw file INVIO --> scrivi su file le righe da n a m :x INVIO o :wq INVIO --> esci e salva documento corrente :q / :q! --> esci senza salvare / forzatamenteInizio
Comandi vari
:help opzione INVIO --> apre l'help su opzione :sh INVIO --> apre la shell di sistema. exit per tornare all'editor :set INVIO --> mostra le impostazioni attuali :syntax on INVIO --> attiva la sintassi evidenziata :set textwidth=xx INVIO --> xx max lunghezza della riga :set number INVIO --> numera le righe del documento :color evening INVIO --> usa lo schema di colori evening vim -r file INVIO --> (da shell) recupera file dopo un crashInizio






