Vi è uno di quegli strumenti che all’inizio sembrano progettati per punire l’utente e, qualche ora dopo, iniziano a mostrare una logica molto precisa. Il motivo è semplice: non è un editor “modeless”. La tastiera non serve sempre a inserire testo; a seconda della modalità, gli stessi tasti diventano comandi.
Vim, “Vi IMproved”, mantiene il modello di Vi e lo estende con molte funzioni aggiuntive. Su un server minimale possiamo incontrare vi, vim, vim-tiny oppure implementazioni compatibili differenti.
Le modalità
- Normal: movimento e comandi;
- Insert: inserimento testo;
- Visual: selezione;
- Command-line: comandi che iniziano con
:,/o?.
Esc riporta normalmente in Normal mode. Quando non sappiamo più dove siamo, è il tasto di ritorno a casa.
Aprire, scrivere, salvare
vim file.conf
vi file.conf
i # inserisci prima del cursore
a # inserisci dopo il cursore
o # nuova riga sotto
O # nuova riga sopra
:w # salva
:q # esci
:wq # salva ed esci
:x # salva se necessario ed esci
:q! # abbandona le modifiche
Muoversi
h j k l # sinistra, giù, su, destra
w # parola successiva
b # parola precedente
e # fine parola
0 # inizio riga
^ # primo carattere non vuoto
$ # fine riga
gg # prima riga
G # ultima riga
42G # riga 42
I numeri moltiplicano molti comandi: 5j scende di cinque righe, 3w avanza di tre parole.
Operatori + movimenti
Il salto concettuale arriva quando impariamo la grammatica operatore + movimento invece di memorizzare decine di scorciatoie.
d # delete
c # change
y # yank/copia
dw # cancella fino alla parola successiva
d$ # cancella fino a fine riga
dd # cancella la riga
3dd # cancella tre righe
cw # modifica la parola
c$ # modifica fino a fine riga
yw # copia una parola
yy # copia una riga
Incollare, undo e ripetizione
p # incolla dopo
P # incolla prima
u # undo
Ctrl-r # redo
. # ripeti l'ultima modifica
Ricerca: correzione importante rispetto alla vecchia guida
Nel vecchio articolo del 2012 c’era un errore: per continuare una ricerca non si usano ; e ,. Questi ripetono movimenti basati su f/F/t/T. Per ripetere una ricerca usiamo n e N.
/errore
?errore
n
N
*
#
Sostituzioni
:s/vecchio/nuovo/
:s/vecchio/nuovo/g
:%s/vecchio/nuovo/g
:%s/vecchio/nuovo/gc
L’ultima forma chiede conferma per ogni sostituzione ed è spesso la più sicura quando modifichiamo configurazioni.
Visual mode
v # selezione per caratteri
V # selezione per righe
Ctrl-v # selezione a blocco
Numeri di riga e opzioni utili
:set number
:set relativenumber
:set ignorecase
:set smartcase
:set hlsearch
:set incsearch
Registri
"ayy
"ap
:registers
Vim conserva testo copiato e cancellato in registri. Quelli clipboard dipendono da build e ambiente grafico.
Più file, buffer e finestre
vim file1 file2
:args
:next
:previous
:edit altro.conf
Un buffer rappresenta normalmente il contenuto di un file, una window è una vista su un buffer e una tab page organizza una o più window.
Il modo migliore per imparare
vimtutor
Il tutorial interattivo è molto più efficace di una lista di scorciatoie letta una volta e dimenticata.
Perché vale ancora la pena conoscerlo
Non è necessario usare Vim come IDE quotidiano. Ma saper aprire, modificare, cercare e salvare un file è estremamente utile via SSH, in rescue mode o su sistemi minimali.
Riferimenti
Vim documentation · dentro Vim: :help.


