Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Vim � ideato per ridurre al minimo il lavoro delle dita, e non ci sar� mai bisogno
di usare il mouse. Questo pu� sembrare sciocco, ma una volta padroneggiato vim, se
ne comprender� il motivo.
==Caratteristiche==
* Vim � molto potente per effettuare editing avanzati
* Espandibile, grazie alle opzioni di configurazione
* Semplici e robuste scorciatoie da tastiera
* Evidenziazione della sintassi
==Installazione==
{{Nota|{{Pkg|vim}} non � pi� compilato con l'opzione X server. Per molti utenti,
significa che la normale funzione di copia e incolla dagli appunti di un ambiente
grafico non funzioner�. Se non si vuole rinunciare a questa funzionalit�,
considerare l'installazione di {{Pkg|gvim}} che include una versione di Vim con
questo supporto. Vedere {{Bug|14609}} per maggiori informazioni.}}
{{Nota|Il pacchetto vim � concepito per essere il pi� leggero possibile, per cui
non supporta gli interpreti di Python, Lua, e Ruby. Se si richiede tale supporto,
scegliere il pacchetto gvim, il quale include il binario vim. Il repository non
ufficiale {{ic|herecura-stable}} fornisce qualche variante di vim / gvim:
{{hc|$ pacman -Slq herecura-stable | grep vim|
vim-cli
vim-gvim-gtk
vim-gvim-motif
vim-gvim-qt
vim-gvim-x11
vim-rt
vim-tiny
}}
}}
==Uso==
Questa � una panoramica base su come utilizzare vim. Alternativamente, � possibile
utilizzare {{ic|vimtutor}} per familiarizzare con l'editor. Vim ha quattro
differenti modalit�:
===Editing di base===
Se si avvia vim con:
$ vim somefile.txt
{{Nota|Vim � un esempio dello stile Unix. Questo significa che non � vistoso, e non
lascer� ferme le nostre mani. Non ha assistenti o giochi integrati. Esso per� ci
permetter� comunque di portare a termine il lavoro, ed anche velocemente. Anche
tutti i suoi comandi sono case sensitive. A volte i comandi maiuscoli sono una
versione con effetto pi� ampio ({{ic|s}} sostituisce un carattere, {{ic|S}}
sostituisce una linea), altre volte sono comandi completamente diversi ({{ic|j}}
sposta il cursore in basso, {{ic|J}} unisce due linee).}}
Per inserire il testo (prima del cursore) usare il comando {{ic|i}}. {{ic|I}}
('''i''' maiuscola) entra in inserimento all'inizio della linea. Per aggiungere del
testo dopo il cursore (quello che la maggior parte degli utenti si aspetta) premere
{{ic|a}}. Premendo {{ic|A}} posizioner� il cursore per l'inserimento alla fine
della linea.
===Spostamento===
In vim, � possibile spostare il cursore usando le frecce della tastiera, ma questa
non � considerata la '''vim way'''. Si dovrebbe spostare la mano troppo a destra
dalla normale posizione di battitura per raggiungere le frecce, e poi ritornare in
posizione. Non � divertente.
Per spostarsi di una parola premere {{ic|w}}. {{ic|W}} considera come appartenenti
alla parola pi� caratteri (ad esempio gli underscore, i trattini come parte della
parola). Per tornare indietro di una parola si usa {{ic|b}}. Anche in questo caso
{{ic|B}} considera come appartenenti alla parola pi� caratteri. Per avanzare fino
alla fine di una parola {{ic|e}}, {{ic|E}} per comprendere altri caratteri.
Per spostarsi all'inizio di una frase {{ic|(}} effettuer� lo spostamento. {{ic|)}}
far� invece l'opposto, spostandosi alla fine della frase. Per uno spostamento
maggiore {{ic|{}} posizioner� il cursore all'inizio del paragrafo. {{ic|
<nowiki>}</nowiki>}} sposter� il cursore alla fine dell'intero paragrafo.
===Ripetere i comandi===
Se un comando � preceduto da un numero, allora questo comando verr� eseguito un
numero di volte uguale al numero premuto (ci sono delle eccezioni, ma possono avere
senso, come il comando {{ic|s}}). Ad esempio premendo {{ic|3i}} ed inserendo il
testo "Help! " e successivamente {{ic|Esc}} verr� inserito il testo "Help! Help!
Help! �. Premendo {{ic|2<nowiki>}</nowiki>}} il cursore si sposter� in avanti di
due paragrafi. Questo � utile con alcuni dei comandi di seguito.
===Cancellare===
Il comando {{ic|x}} canceller� il carattere sotto al cursore. {{ic|X}} canceller�
il carattere prima del cursore. Qui � dove la funzione dei numeri diventa
interessante. {{ic|6x}} canceller� 6 caratteri. Premere {{ic|.}} (punto) ripeter�
il comando precedente. Quindi, ipotizzando di avere la parola "foobar" in diversi
punti, ma dopo averci pensato, si preferisce usare la parola "foo". Spostare il
cursore sopra la lettera "b", premere {{ic|3x}}, spostare il cursore sulla
successiva parola "foobar" e premere {{ic|.}} (punto).
Il comando {{ic|d}} comunicher� a vim che si intende cancellare qualcosa. Dopo aver
premuto {{ic|d}}, sar� necessario indicare cosa cancellare. Si possono utilizzare
anche i comandi di movimento. {{ic|dW}} canceller� finito alla prossima parola.
{{ic|d^}} canceller� fino all'inizio della linea. Anteporre un numero al comando di
eliminazione funzioner� altrettanto: {{ic|3dW}} canceller� fino alle tre parole
successive. {{ic|D}} (maiuscolo) � una scorciatoia per cancellare fino alla fine
della linea (come {{ic|d$}}). Premere {{ic|dd}} canceller� tutta la linea.
===Annulla e ripeti===
Vim ha una funzione appunti integrata (anche nota come buffer). Le azioni possono
essere annullate con il tasto {{ic|u}} e ripetute con la combinazione {{ic|
Ctrl+r}}.
===Modalit� visuale===
Premendo {{ic|v}} si entrer� in ''visual mode''. In questa modalit� � possibile
selezionare parti di testo, una volta selezionato premendo {{ic|y}} verr�
memorizzato nel buffer, � possibile tagliare il testo premendo {{ic|c}}. {{ic|p}}
incoller� il testo memorizzato nel buffer dopo il cursore, {{ic|P}} prima. Il tasto
{{ic|V}} attiver� la ''visual line mode'', analoga alla modalit� precedente ma con
effetto su intere linee. {{ic|Ctrl+v}} invece per i blocchi di testo.
{{Nota|In qualsiasi momento si cancelli del testo, questo vine inserito nel buffer
e sar� disponibile per essere incollato.}}
===Trova e sostituisci===
Per cercare una parola o un carattere nel file, baster� semplicemente premere
{{ic|/}} e successivamente il/i carattere/i da cercare ed infine premere {{ic|
ENTER}}. Per visualizzare l'occorrenza successiva della ricerca usare {{ic|n}},
mentre per la precedente usare {{ic|N}}.
Comando Risultato
:s/xxx/yyy/ Sostituisce xxx con yyy alla prima occorrenza
:s/xxx/yyy/g Sostituisce xxx con yyy alla prima occorrenza, globalmente, (in una
intera frase)
:s/xxx/yyy/gc Sostituisce xxx con yyy globalmente con conferma
:%s/xxx/yyy/g Sostituisce xxx con yyy globalmente in tutto il file
Comando Risultato
:g/^#/d Cancella tutte le linee che iniziano per #
:g/^$/d Cancella tutte le linee che sono vuote
===Salvare ed uscire===
Per salvare e/o uscire, sar� necessario usare la modalit� ''Ex''. I comandi della
modalit� ''Ex'' sono preceduti da {{ic|:}}. Per salvare un file usare {{ic|''':w'''
nomefile}}. Per uscire {{ic|:q}}. Se invece si desidera uscire senza salvare le
modifiche effettuate, usare {{ic|:q!}}. Per salvare ed uscire {{ic|:x}}. Esiste
anche un'altra scorciatoia per salvare ed uscire cio� la combinazione {{ic|ZZ}}
(maiuscole).
===Altri comandi===
==Configurazione==
Il file di configurazione personale di vim si trova nella cartella home dell'utente
{{ic|~/.vimrc}}. Gli utenti esperti di vim tendono a tenere un {{ic|~/.vimrc}}
molto ben strutturato. La configurazione globale di vim � situata in
{{ic|/etc/vimrc}}. La variabile di ripiego {{ic|$VIM}} � definita come
{{ic|/usr/share/vim/}}. Ad esempio per creare uno schema di colori globale il file
{{ic|*.vim}} dello schema di colori dovrebbe essere salvato in
{{ic|/usr/share/vim/vimfiles/}}.
cp /etc/vimrc /etc/vimrc.bak
cp /usr/share/vim/vim73/vimrc_example.vim /etc/vimrc
===File di backup===
Vim per default crea un backup di un file modificato nella stessa cartella del file
chiamandolo {{ic|nomefile~}}. Per evitare di ingombrare, alcuni utenti impostano
vim per utilizzare una apposita cartella per i backup:
set backupdir=~/.vim/backup,/tmp
set nobackup
set nowritebackup
set noswapfile ! (disabilita i file swap)
set wrapscan
===Controllo ortografico===
set spell
Con questa opzione Vim evidenzier� le parole non scritte correttamente. Muovere il
cursore su una parola errata e usare {{ic|z<nowiki>=</nowiki>}} per vedere le
correzioni proposte.
Solo il dizionario inglese sar� installato di default, altri possono essere trovati
nei [[Official repositories (Italiano)|repository ufficiali]]. Per ottenere una
lista dei linguaggi disponibili, eseguire:
{{Tip|
* Per abilitare il controllo ortografico soltanto per i documenti LaTeX (o TeX),
aggiungere {{ic|autocmd FileType tex setlocal spell
spelllang<nowiki>=</nowiki>en_us}} al file {{ic|~/.vimrc}} oppure in
{{ic|/etc/vimrc}}, e riavviare vim. Per il controllo ortografico di linguaggi
diversi dall'inglese, semplicemente sostituire {{ic|en_us}} con il valore
appropriato al proprio linguaggio.
* Sar� possibile abilitare il controllo ortografico per alcuni tipi di file (ad
esempio *.txt) usando il plugin FileType ed una regola personalizzata per
dichiarare il tipo di file. Per abilitare il controllo ortografico per ogni file di
tipo {{ic|*.txt}}, creare il file
{{ic|/usr/share/vim/vimfiles/ftdetect/plaintext.vim}}, ed inserire la linea {{ic|
autocmd BufRead,BufNewFile *.txt setfiletype plaintext}} nel file.
Successivamente, inserire la linea {{ic|autocmd FileType plaintext setlocal spell
spelllang<nowiki>=</nowiki>en_us}} nel proprio file {{ic|~/.vimrc}} oppure in
{{ic|/etc/vimrc}}, e riavviare vim.}}
===Evidenziare la sintassi===
Per abilitare l'opzione ed evidenziare la sintassi (''syntax highlighting'') (vim
supporta una vasta lista di linguaggi di programmazione):
filetype plugin on
syntax on
===Esempio di ~/.vimrc===
Un esempio della [[Vim/.vimrc (Italiano)|configurazione di Vim]].
]c : - differenza successiva
[c : - differenza precedente
Ctrl+w +w - cambio finestra
do - invia modifica
dp - ottieni modifica
zo - mostra il testo nascosto
zc - nasconde il testo
:diffupdate - ricontrolla i file in cerca di differenze
==Vim Tips==
Trucchi per portare a termine alcuni compiti.
===Numeri linea===
# Per mostrare i numeri linea {{ic|:set number}}.
# Per andare ad una linea specifica {{ic|:<numero linea>}}.
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal!
g`\"" | endif
endif
Consultare anche
[http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_sess
ion questo articolo] del wiki di Vim.
Un'altra soluzione consiste nel rendere pi� omogeneo il colore dello sfondo:
semplicemente inserendo questa linea nel file {{ic|~/.gtkrc-2.0}}:
style "vimfix" {
bg[NORMAL] = "#242424" # this matches my gvim theme 'Normal' bg color.
}
widget "vim-main-window.*GtkForm" style "vimfix"
==Altre risorse==
===Ufficiali===
* [http://www.vim.org/ Homepage]
* [http://vimdoc.sourceforge.net/ Documentazione]
* [http://vim.wikia.com Tips Wiki]
===Tutorial===
* [http://usalug.org/vi.html vi Tutorial e Reference Guide]
* [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html vi-vim trucchi
consigli e Tutorial grafici]
* [http://blog.interlinked.org/tutorials/vim_tutorial.html Vim introduzione e
tutorial]
* [http://vim.runpaint.org/ Vim Recipes] - Un manuale liberamente consultabile.
===Video===
* [http://vimcasts.org/ Vimcasts] - Screencasts in formato .ogg.
* [http://www.derekwyatt.org/vim/vim-tutorial-videos/vim-novice-tutorial-videos/
Video tutorial] - Tratta dagli argomenti base a quelli avanzati.
===Esempi di configurazione===
* [http://nion.modprobe.de/setup/vimrc Setup di nion]
* [http://amix.dk/vim/vimrc.html Una configurazione dettagliata da Amir
Salihefendic]
* [http://www.jukie.net/~bart/conf/vimrc Bart Trojanowski]
* [https://gist.github.com/anonymous/c966c0757f62b451bffa Basic .vimrc]
===Altro===
* [http://www.gentoo-wiki.info/HOWTO_VIM HOWTO Vim] - Articolo del wiki di Gentoo
su cui � basato questo articolo (autore sconosciuto).
* [http://bytefluent.com/vivify/ Vivify] - Un editor dello schema di colori per Vim