VIM(1) Manuale dei comandi generali VIM(1)
NOME
vim - VI Migliorato, un editor di testi per programmatori
SINTASSI
vim [opzioni] [file ..]
vim [opzioni] -
vim [opzioni] -t tag
vim [opzioni] -q [file_errori]
ex
view
gvim gview evim eview
rvim rview rgvim rgview
DESCRIZIONE
Vim è un editore di testi, compatibile con, e migliore di, Vi. Può esse-
re usato per editare qualsiasi file di testo. Particolarmente utile per
editare programmi.
Ci sono parecchi miglioramenti rispetto a Vi: undo multipli, finestre e
buffer multipli, evidenziazione sintattica, possibilità di modificare la
riga di comando, completamento nomi file, help in linea, selezione testi
in Modo Visual, etc.. Vedere ":help vi_diff.txt" per un sommario delle
differenze fra Vim e Vi.
Mentre si usa Vim si può ricevere molto aiuto dal sistema di help onli-
ne, col comando ":help". Vedere qui sotto la sezione AIUTO ONLINE.
Quasi sempre Vim viene invocato, per modificare un file, col comando
vim nome_file
Più in generale Vim viene invocato con:
vim [opzioni] [lista_file]
Se lista_file non è presente, l'editor inizia aprendo un buffer vuoto.
Altrimenti, una e una sola delle quattro maniere indicate qui sotto può
essere usata per scegliere uno o più file da modificare.
nome_file ..
Una lista di nomi di file. Il primo di questi sarà il file
corrente, e verrà letto nel buffer. Il cursore sarà posizio-
nato sulla prima linea del buffer. Si può arrivare agli al-
tri file col comando ":next". Per editare un file il cui no-
me inizia per "-" premettete "--" alla lista_file.
- Il file da editare è letto dallo stdin. I comandi sono letti
da stderr, che dovrebbe essere un terminale [tty].
-t {tag} Il file da editare e la posizione iniziale del cursore di-
pendono da "tag", una specie di "etichetta" a cui saltare.
{tag} viene cercata nel file "tags", e il file a essa asso-
ciato diventa quello corrente, e il comando a essa associato
viene eseguito. Di solito si usa per programmi C, nel qual
caso {tag} potrebbe essere un nome di funzione. L'effetto è
che il file contenente quella funzione diventa il file cor-
rente e il cursore è posizionato all'inizio della funzione.
Vedere ":help tag-commands".
-q [file_errori]
Inizia in Modo QuickFix [correzione veloce]. Il file [fi-
le_errori] è letto e il primo errore è visualizzato. Se [fi-
le_errori] non è indicato, il suo nome è ottenuto dal valore
dell'opzione 'errorfile' (che, se non specificata, vale "Az-
tecC.Err" per l'Amiga, "errors.err" su altri sistemi). Si
può saltare all'errore successivo col comando ":cn". Vedere
":help quickfix".
Vim si comporta in modo diverso se invocato con nomi differenti (il pro-
gramma eseguibile "soggiacente" può essere sempre lo stesso).
vim Modo Normal, comportamento predefinito.
ex Inizia in Modo "Ex". Si può passare in Modo Normal col comando
":vi". Si può invocare il Modo "Ex" anche con l'argomento
"-e".
view Inizia in Modo Read-only (Sola Lettura). Non si possono modi-
ficare i file. Si può invocare il Modo Read-only anche con
l'argomento "-R".
gvim gview
La versione GUI [Graphical User Interface]. Apre una nuova fi-
nestra. Si può invocare il Modo GUI anche con l'argomento
"-g".
evim eview
La versione GUI in Modo Easy (semplificata). Apre una nuova
finestra. Si può invocare il Modo Easy anche con l'argomento
"-y".
rvim rview rgvim rgview
Come sopra, ma con restrizioni ai comandi. Non si potranno
eseguire comandi della shell o sospendere Vim. Si può chiedere
la stessa cosa anche con l'argomento "-Z".
OPZIONI
Le opzioni possono essere in un ordine qualsiasi, prima o dopo i nomi di
file. Opzioni che non hanno un argomento si possono specificare dietro a
un solo "-".
+[numero] Nel primo file il cursore sarà posizionato sulla linea "nu-
mero". Se "numero" manca, il cursore sarà posizionato
sull'ultima linea del file.
+/{espressione}
Nel primo file il cursore sarà posizionato alla prima occor-
renza di {espressione}. Vedere ":help search-pattern" per
come specificare l'espressione.
+{comando}
-c {comando}
{comando} sarà eseguito dopo che il primo file è stato let-
to. {comando} è interpretato come un comando Ex. Se il {co-
mando} contiene spazi deve essere incluso fra doppi apici (o
altro delimitatore, a seconda della shell che si sta usan-
do). Esempio: vim "+set si" main.c
Note: Si possono avere fino a 10 comandi "+" o "-c".
-A Se Vim è stato compilato con supporto ARABIC per editare fi-
le con orientamento destra-sinistra e tastiera con mappatura
araba, quest'opzione inizia Vim in Modo Arabic, cioè impo-
stando 'arabic'. Altrimenti viene dato un messaggio di erro-
re e Vim termina in modo anormale.
-b Modo Binary (binario). Vengono impostate alcune opzioni che
permettono di modificare un file binario o un file che con-
tiene un programma eseguibile.
-C Compatibile. Imposta l'opzione 'compatible'. In questo modo
Vim ha quasi lo stesso comportamento di Vi, anche in presen-
za di un file .vimrc.
-d Inizia in Modo Diff [differenze]. Dovrebbero esserci come
argomenti da due o otto nomi di file. Vim aprirà tutti i fi-
le evidenziando le differenze fra gli stessi. Funziona come
vimdiff(1).
-d {dispositivo}, -dev {dispositivo}
Apre {dispositivo} per usarlo come terminale. Solo per
l'Amiga. Esempio: "-d con:20/30/600/150".
-D Debugging. Vim si mette in Modo "debugging" a partire
dall'esecuzione del primo comando da uno script.
-e Eseguire Vim in Modo Ex, come se il programma eseguito sia
"ex".
-E Eseguire Vim in Modo Ex migliorato, come se il programma
eseguito sia "exim".
-f Direttamente [Foreground]. Per la versione GUI, Vim non crea
[fork] una nuova finestra, indipendente dalla shell di invo-
cazione. Per l'Amiga, Vim non è fatto ripartire per aprire
una nuova finestra. Opzione da usare quando Vim è eseguito
da un programma che attende la fine della sessione di edit
(p.es., mail). Sull'Amiga i comandi ":sh" e ":!" non sono
disponibili.
-F Se Vim è stato compilato con supporto FKMAP per editare file
con orientamento destra-sinistra e tastiera con mappatura
Farsi, quest'opzione inizia Vim in Modo Farsi, cioè impo-
stando 'fkmap' e 'rightleft'. Altrimenti viene dato un mes-
saggio di errore e Vim termina in modo anormale.
Nota: Il supporto Farsi è stato rimosso a partire dalla
patch 8.1.0932.
-g Se Vim è stato compilato con supporto GUI, quest'opzione
chiede di usarla. Se Vim è stato compilato senza supporto
GUI viene dato un messaggio di errore e Vim termina in modo
anormale.
-H Se Vim è stato compilato col supporto RIGHTLEFT per editare
file con orientamento destra-sinistra e tastiera con mappa-
tura Ebraica, quest'opzione inizia Vim in Modo Ebraico, cioè
impostando 'hkmap' e 'rightleft'. Altrimenti viene dato un
messaggio di errore e Vim termina in modo anormale.
-i {viminfo}
Se è abilitato l'uso di un file viminfo, quest'opzione indi-
ca il nome del file da usare invece di quello predefinito
"~/.viminfo". Si può anche evitare l'uso di un file .vimin-
fo, dando come nome "NONE".
-l Modo Lisp. Imposta le opzioni 'lisp' e 'showmatch'.
-L Equivalente a -r.
-m Inibisce modifica file. Inibisce l'opzione 'write'. È ancora
possibile modificare un buffer, ma non riscriverlo.
-M Modifiche non permesse. Le opzioni 'modifiable' e 'write'
sono annullate, in modo da impedire sia modifiche che ri-
scritture. Da notare che queste opzioni possono essere abi-
litate in seguito, permettendo così modifiche.
-n Inibisce l'uso di un file di swap. Il recupero dopo una ca-
duta di macchina sarà impossibile. Utile per editare un file
su un supporto molto lento (p.es., floppy). Il comando ":set
uc=0" ha lo stesso effetto. Per abilitare il recupero usare
":set uc=200".
-N Modo "Non-compatibile". Annulla l'opzione 'compatible'. Così
Vim si comporta un po' meglio, ma è meno compatibile con Vi,
anche in assenza di un file .vimrc.
-nb Diviene un Editor server per NetBeans. Vedere la documenta-
zione per dettagli.
-o[N] Apre N finestre in orizzontale. Se N manca, apre una fine-
stra per ciascun file.
-O[N] Apre N finestre, in verticale. Se N manca, apre una finestra
per ciascun file.
-p[N] Apre N pagine di linguette. Quando N è omesso, apre una pa-
gine di linguette per ciascun file.
-P {titolo-padre}
Solo per GUI Win32: Specifica il titolo dell'applicazione-
padre. Se possibile, Vim viene eseguito in una finestra MDI
(Multiple-Document Interface). {titolo-padre} deve apparire
nel titolo della applicazione-padre. Accertatevi che sia
sufficientemente esplicativo. Notare che l'implementazione è
ancora rudimentale. Non funziona per tutte le applicazioni,
e il menù non funziona.
-r Lista file di swap, e informazioni su come usarli per ripri-
stinare file.
-r {file} Modo Recovery (ripristino). Il file di swap è usato per re-
cuperare una sessione di edit finita male. Il file di swap è
un file con lo stesso nome file del file di testo editato,
col suffisso ".swp". Vedere ":help recovery".
-R Modo Read-only (Sola Lettura). Imposta l'opzione 'readonly'.
Si può ancora modificare il buffer, ma il file è protetto da
una riscrittura involontaria. Se si vuole davvero riscrivere
il file, occorre aggiungere un punto esclamativo al comando
Ex, come in ":w!". L'opzione -R implica anche l'opzione -n
(vedere sopra). L'opzione 'readonly' può essere annullata
con ":set noro". Vedere ":help 'readonly'".
-s Modo silenzioso. Solo quando invocato come "Ex" o quando
l'opzione "-e" è stata data prima dell'opzione "-s".
-s {script_in_input}
Lo script file {script_in_input} è letto. I caratteri nel
file sono interpretati come se immessi da terminale. Lo
stesso risultato si può ottenere col comando ":source!
{script_in_input}". Se la fine del file di input viene rag-
giunta prima che Vim termini, l'ulteriore input verrà preso
dalla tastiera.
-S {file} I comandi contenuti in {file} sono eseguiti dopo la lettura
del primo file. Equivalente a -c "source {file}". {file} non
può avere un nome che inizia per '-'. Se {file} è omesso si
usa "Session.vim" (funziona solo se -S è l'ultimo argomento
specificato).
-T {terminale}
Dice a Vim quale tipo di terminale state usando. Utile solo
se il terminale non viene riconosciuto correttamente da Vim.
Dovrebbe essere un terminale noto a Vim (predefinito) o de-
finito nei file termcap o terminfo.
-u {vimrc} Usa i comandi nel file {vimrc} per inizializzazioni. Tutte
le altre inizializzazioni non sono eseguite. Usare quest'op-
zione per editare qualche file di tipo speciale. Si possono
anche omettere tutte le inizializzazioni dando come nome
"NONE". Vedere ":help initialization" da vim per ulteriori
dettagli.
-U {gvimrc} Usa i comandi nel file {gvimrc} per inizializzazioni GUI.
Tutte le altre inizializzazioni GUI non sono eseguite. Si
possono anche omettere tutte le inizializzazioni GUI dando
come nome "NONE". Vedere ":help gui-init" da vim per ulte-
riori dettagli.
-v Inizia Vim in Modo Vi, come se il programma eseguibile fosse
"vi". Questo ha effetto solo quando Vim viene invocato con
il nome "ex".
-V[N] Verboso. Vim manda messaggi relativi ai file di script che
esegue e quando legge o scrive un file viminfo. Il numero
opzionale N è il valore dell'opzione 'verbose'. Il valore
predefinito è 10.
-V[N]{nome_file}
Come -V imposta 'verbosefile' a {nome_file}. Il risultato è
che i messaggi non sono visualizzati, ma scritti sul file
{nome_file}. Il {nome_file} non deve iniziare con un numero.
-w{numero} Imposta l'opzione 'window' a {numero}.
-w {script_file}
Ogni carattere immesso viene registrato nel file {script_fi-
le}, finché non si esce da Vim. Utile se si vuole creare uno
script file da usare con "vim -s" o ":source!". Se il file
{script_file} esiste, il testo immesso viene aggiunto in
fondo.
-W {script_file}
Come -w, ma uno script file esistente viene sovrascritto.
-x Se Vim è stato compilato con il supporto per la cifratura,
usare cifratura nella scrittura dei file. Verrà chiesta una
chiave di cifratura.
-X Non connettersi al server X. Vim parte più rapidamente, ma
il titolo della finestra e la clipboard non sono usati.
-y Eseguire Vim in Modo Easy (semplificato), come se l'esegui-
bile invocato sia "evim" o "eview". Fa sì che Vim si compor-
ti come un editor che usa solo il mouse e i caratteri.
-Z Modo ristretto. Vim si comporta come se invocato con un nome
che inizia per "r".
-- Specifica la fine delle opzioni. Argomenti specificati dopo
questo sono considerati nomi file. Si può usare per editare
un file il cui nome inizi per '-'.
--clean Richiede di non usare alcun file di personalizzazione
(vimrc, plugin, etc.). Utile per verificare se un problema
persiste invocando Vim "originale".
--cmd {comando}
Come "-c", ma il comando è eseguito subito PRIMA di eseguire
qualsiasi file vimrc. Si possono usare fino a 10 di questi
comandi, indipendentemente dai comandi "-c".
--echo-wid Solo per GUI GTK: Visualizza ID di Window su stdout.
--gui-dialog-file {nome}
Quando si usa la GUI, invece di visualizzare un dialogo, il
titolo e il messaggio del dialogo sono scritti sul file {no-
me}. Il file viene creato o, se già esistente, viene esteso.
Quest'opzione serve solo in fase di test, per evitare di re-
stare bloccati da un dialogo che non si riesce a visualizza-
re. Se si sta lavorando senza la GUI l'argomento viene igno-
rato.
--help, -h, -?
Un po' di aiuto su opzioni e argomenti che si possono dare
invocando Vim. Subito dopo Vim esce.
--literal Considera i nomi passati come argomenti letterali, senza
espandere metacaratteri. Non ha effetto in Unix, dove la
shell espande comunque i metacaratteri.
--log {nome_file}
Se Vim è stato compilato con le funzionalità eval e channel,
inizia a registrare e scrive le registrazioni a {nome_file}.
Ciò equivale a chiamare ch_logfile({nome_file}, 'ao') in una
fase molto iniziale dell'avvio del programma.
--nofork Direttamente [Foreground]. Per la versione GUI, Vim non crea
[fork] una nuova finestra, indipendente dalla shell di invo-
cazione.
--noplugin Non caricare plugin. Implicito se si specifica -u NONE.
--not-a-term
Da usare per specificare a Vim che l'utente è consapevole
che l'input e l'output non avvengono con un terminale vero e
proprio. Ciò serve per evitare il messaggio di avvertimento
e il ritardo di due secondi che avverrebbero in assenza di
questo argomento.
--remote Connettersi a un server Vim e chiedere di editare i file
elencati come altri argomenti. Se non si trova un server
viene dato un messaggio e i file sono editati nel Vim cor-
rente.
--remote-expr {expr}
Connettersi a un server Vim, valutare {expr} e stampare il
risultato su stdout.
--remote-send {chiavi}
Connettersi a un server Vim e spedirgli {chiavi}.
--remote-silent
Come --remote, ma senza avvisare se non si trova un server.
--remote-wait
Come --remote, ma Vim non termina finché i file non sono
stati editati.
--remote-wait-silent
Come --remote-wait, ma senza avvisare se non si trova un
server.
--serverlist
Elenca i nomi di tutti i server Vim disponibili.
--servername {nome}
Usa {nome} come nome server. Usato per il Vim corrente, a
meno che sia usato con l'argomento --remote, nel qual caso
indica il server a cui connettersi.
--socketid {id}
Solo per GUI GTK: Usa meccanismo GtkPlug per eseguire gVim
in un'altra finestra.
--startuptime {nome_file}
Durante la fase iniziale, scrive messaggi di log al file
{nome_file}.
--ttyfail Quando stdin o stdout non sono un terminale (tty) esce subi-
to da Vim.
--version Stampa la versione di Vim ed esce.
--windowid {id}
Solo per GUI Win32: Chiede a gVim di provare a user l'ID di
window {id} come padre, in modo da venir eseguito all'inter-
no della finestra specificata.
AIUTO ONLINE
Battere ":help" in Vim per iniziare. Battere ":help argomento" per rice-
vere aiuto su uno specifico argomento. Per esempio: ":help ZZ" per rice-
vere aiuto sul comando "ZZ". Usare <Tab> e CTRL-D per completare gli ar-
gomenti (":help cmdline-completion"). Ci sono "tag" nei file di help per
passare da un argomento a un altro (simili a legami ipertestuali, vedere
":help"). Tutti i file di documentazione possono essere navigati così.
Ad es.: ":help syntax.txt".
FILE
/usr/local/share/vim/vim??/doc/*.txt
I file di documentazione di Vim Usare ":help doc-file-li-
st" per avere la lista completa.
vim?? è il numero di versione corto, p.es., vim91 per in-
dicare Vim 9.1
/usr/local/share/vim/vim??/doc/tags
Il file di tags usato per trovare informazioni nei file
di documentazione.
/usr/local/share/vim/vim??/syntax/syntax.vim
Inizializzazioni sintattiche a livello di sistema.
/usr/local/share/vim/vim??/syntax/*.vim
File di colorazione sintattica per vari linguaggi.
/usr/local/share/vim/vimrc
Inizializzazioni Vim a livello di sistema.
~/.vimrc, ~/.vim/vimrc, $XDG_CONFIG_HOME/vim/vimrc
Inizializzazioni personali di Vim (viene utilizzata la
prima trovata).
/usr/local/share/vim/gvimrc
Inizializzazioni gvim a livello di sistema.
~/.gvimrc, ~/.vim/gvimrc, $XDG_CONFIG_HOME/vim/gvimrc
Inizializzazioni personali di gVim (viene utilizzata la
prima trovata).
/usr/local/share/vim/optwin.vim
Script Vim usato dal comando ":options", maniera elegante
per visualizzare e impostare opzioni.
/usr/local/share/vim/vim??/menu.vim
Inizializzazioni del menù gVim a livello di sistema.
/usr/local/share/vim/vim??/bugreport.vim
Script Vim per generare una segnalazione di errore. Vede-
re ":help bugs".
/usr/local/share/vim/vim??/filetype.vim
Script Vim per determinare il tipo di un file dal suo no-
me. Vedere ":help 'filetype'".
/usr/local/share/vim/vim??/scripts.vim
Script Vim per determinare il tipo di un file dal suo
contenuto. Vedere ":help 'filetype'".
/usr/local/share/vim/vim??/print/*.ps
File usati per stampa PostScript.
Per informazioni aggiornate [in inglese - NdT] vedere la home page di
Vim:
<URL:http://www.vim.org/>
VEDERE ANCHE
vimtutor(1)
AUTORE
Buona parte di Vim è stato scritto da Bram Moolenaar, con molto aiuto da
parte di altri. Vedere ":help credits" in Vim.
Vim è basato su Stevie, scritto da: Tim Thompson, Tony Andrews e G.R.
(Fred) Walter. In verità, poco o nulla è rimasto del loro codice origi-
nale.
BUG
Probabilmente. Vedere ":help todo" per una lista di problemi noti.
Si noti che un certo numero di comportamenti che possono essere conside-
rati errori da qualcuno, sono in effetti causati da una riproduzione fin
troppo fedele del comportamento di Vi. Se si ritiene che altre cose sia-
no errori "perché Vi si comporta diversamente", si dia prima un'occhiata
al file vi_diff.txt (o si immetta :help vi_diff.txt da Vim). Un'occhiata
va data anche alle opzioni 'compatible' e 'cpoptions.
12 agosto 2024 VIM(1)
Generated by dwww version 1.16 on Tue Dec 16 05:11:35 CET 2025.