Un “bigino” dei comandi VIM più utili e utilizzati, riassunti in un articolo sul sito Joe’s Corner
Assolutamente da leggere e imparare a memoria!!!
Aggiungo poi alcuni comandi interessanti:
5: -> individua l’intervallo .,.+4 ovvero dal cursore a 4 linee più in basso
Oppure in visual mode (v) si possono selezionare delle linee e premendo : viene automaticamente selezionato l’intervallo sul quale eseguire operazioni (copia, delete, sostituzioni…)
Ecco due paginette davvero interessanti sull’uso dei TAB in VIM e sull’utilizzo delle finestre splittate:
vim tabs e vim split
Ad esempio… sapete di poter ripetere un comando su tutti i tab aperti?
:tabdo 1,$s/foo/bar/g
Questo comando infatti sostituisce la stringa foo con bar in tutti i file aperti nei tab della sessione
Ecco come lavorare su più file contemporaneamente con VIM (articolo tratto da linuxfeed.org)
Per aprire due file contemporaneamente dividendo l’area di lavoro orizzontalmente si ricorre all’opzione -o:
vim -o file1.txt file2.txt
Per aprire due file contemporaneamente dividendo l’area di lavoro verticalmente si ricorre all’opzione -O:
vim -O file1.txt file2.txt
Per passare da una finestra all’altra si utilizza CTRL-W + CTRL-W (due volte CTRL+W)
Dopo avere lavorato contemporaneamente su più file, può rendersi necessario chiudere tutto e andarsene un poco a spasso. Questi sono i comandi con cui chiudere una sessione multipla di Vim:
:wqall
:qall!
Nel primo caso si chiudono tutte le finestre dopo avere salvato le modifiche di ognuno. Nel secondo si chiede di chiudere tutto ignorando qualsiasi modifica effettuata sui file.
Si può approfondire l’argomento leggendo la pagina del manuale di VIM: usr_08, che spiega anche come gestire le differenze tra file con il comando vimdiff
Ecco come controllare la sintassi di un file PHP prima di salvare il file stesso (per chi volesse approfondire, ecco un articolo su vim.wikia.com):
Inserite nel file .vimrc (nella home dell’utente) la seguente riga:
map <C-A> :w !php -l<CR>
Editate dunque il file che volete controllare e premete CTRL+a: un messaggio vi indicherà se il file ha un errore di sintassi oppure no!
Utilissimo TIP per non salvare file errati… soprattutto se direttamente in produzione!
Ho trovato un tutorial interessante su come registrare le macro con VIM (ad esempio per poter sostituire una stringa in più file il più velocemente possibile!)
Ecco come fare:
vim *.cpp Avviate Vim, definendo la lista di argomenti
che contiene tutti i file C++ . Siete ora
nel primo file.
qq Iniziate la registrazione nel registro q
Effettuate le sostituzioni nel primo file. (opzione /e sopprime i warning!)
:wnext Scrivete il file e passate al successivo.
q Interrompete la registrazione.
999@q Eseguite il registro q nei restanti file.
Tutto qui!
Lo sapevate che con l’editor VIM si possono attuare delle sostituzioni di stringhe con le regexp ?
Ecco un link/tutorial molto interessante che spiega come utilizzare questo potentissimo mezzo:
VIM REGULAR EXPRESSION
Per indentare automaticamente il codice scritto con VIM si possono usare 2 metodi:
- indentare automaticamente il codice PRIMA di scriverlo
- indentare automaticamente il codice DOPO averlo scritto
Per quanto riguarda il primo punto, si può utilizzare semplicemente il comando :set autoindent, ma a volte è troppo semplicistico. Si limita infatti a mantenere la tabulazione ad esempio dopo un if… ma non di certo a sistemare gli spazi di 2 if consecutivi o di costrutti più complessi.
Invece per indentare il codice DOPO averlo scritto risulta utilissimo il comando gg=G
Basta fare un paio di prove per capire l’utilità di questo comando!
Io personalmente ho inserito set autoindent nel file .vimrc e all’occorrenza utilizzo gg=G
Rimando anche a questa pagina su www.chovy.com per ulteriori dettagli… e a questa sul WIKI
Chi usa VIM sa che si può abilitare o disabilitare il matching automatico delle parentesi.
Questa funzione può risultare utile ma a volte rallenta l’editing del codice…
Ecco cosa bisogna fare per abilitare/disabilitare questa funzionalità:
nel file .vimrc inserire la seguente riga (con 0 per disabilitare, 1 altrimenti)
let loaded_matchparen=0
Come utilizzare VIM per aprire un file in sola lettura? Facilissimo… basta scrivere il nome del file preceduto dall’opzione “-o”
ES: vim -o mio_file.txt
Ecco un link interessante: il manuale di VIM e tutto ciò che c’è da sapere su questo mitico editor!