Introduzione a Vim
blog-image

Introduzione a Vim

  • Tuesday, Feb 12, 2019

vi è un editor di testo con interfaccia testuale per BSD e Unix. Il nome deriva dalla più breve abbreviazione non ambigua del comando visual in ex (cioè ‘’ )

Il programma venne scritto da Bill Joy nel 1976 per una delle prime versioni di BSD. Successivamente, è diventato l'editor standard de facto per Unix, insidiato solo da emacs.

Un editor modale (come ogni altro programma modale) assegna differenti azioni ai tasti a seconda della modalità attiva nel momento in cui vengono premuti. Le principali modalità di modifica in vi sono i modi insert (inserimento) e command (comando). In modalità inserimento, quando si preme un tasto, il carattere digitato viene interpretato come appartenente al testo da inserire nell'editor e non come un comando, come invece accade nella modalità precedente.

Premendo il tasto ESC dalla modalità inserimento si può tornare in ogni momento alla modalità comando; per passare invece in modalità inserimento si digita il carattere (comando) i: l'ingresso alla nuova modalità è segnalata dalla comparsa della scritta – INSERT –.

Vim, o Vi IMproved, è un editor di testo open source e multipiattaforma, nato per fornire una versione migliorata di Vi.

Da Vi mantiene la caratteristica di essere modale, ovvero di avere modalità diverse nelle quali i normali caratteri della tastiera hanno significato di inserimento testo o di comandi. In questo modo, è possibile usarlo senza far uso del mouse, né dei tasti meta, permettendo una velocità maggiore di scrittura, a prezzo di maggiore difficoltà di utilizzo da parte di nuovi utenti. Attualmente è molto diffuso tra programmatori ed utenti di sistemi operativi unix-like.

gVim (o gvim o GVim) è la versione di Vim dotata interfaccia grafica (e munita quindi di una normale barra dei comandi) ed è disponibile per Linux e Windows, mentre la corrispondente versione per macOS è denominata MacVim o Mac Vim. gVim è l'abbreviazione di GUI Vim.

Modalità di lavoro in vim

Nome Descrizione pagina di help
normal For navigation and manipulation of text. Start in it and go back with <ESC> :help Normal-mode
insert For inserting new text. :help Insert-mode
visual For navigation and manipulation of text selections. :help Visual-mode
command For entering editor commands. :help Command-line-mode
ex optimized for batch processing. :help Ex-mode
select Similar to visual but MS Windows-like. :help Select-mode

Iniziare a scrivere

Per aprire vim basta aprire un terminale, scrivere vim seguito dal nome del file che si intende editare.

$ vim /home/max/testo.txt

Questo comando aprirà il file ‘/home/max/testo.txt’ con l'editor vim. Se il file non è presente verrà creato al primo salvataggio di vim.

All'apertura del documento vim è in command mode. Se si vuole editarlo è necessario passare all'insert mode premendo il tasto i. A questo punto possiamo editare il file come in un normale editor testuale, con la differenza che non potremo usare il mouse. Per muovere il cursore all'interno del documento in insert mode possiamo usare le frecce.

Una volta modificato il documento, per salvarlo dobbiamo tornare in command mode.

Premiamo il tasto ESC. Tutti i comandi di vim, ad eccezione dei comandi di navigazione all'interno del documento, sono preceduti da due punti (:).

Il comando viene scritto nella parte bassa del terminale e viene eseguito quando si preme invio.

Per salvare il documento, dopo aver premuto ESC, scriviamo:

:w

Premiamo invio e il documento sarà salvato.

Se intendiamo fare altre modifiche, premiamo nuovamente i.

Quando siamo soddisfatti del lavoro svolto, possiamo salvare e chiudere il documento. Adiamo in command mode e scriviamo:

:wq

Elenco sintetico dei comandi più utili

Iniziare a scrivere

i - per inserire dei caratteri dalla posizione corrente. 
a - per appendere i caratteri dopo la posizione corrente.
I - per inserire testo all'inizio della riga corrente. 
A - per inserire testo alla fine della posizione corrente

Comandi per salvare e chiudere i documenti

:q – per uscire 
:w – per salvare 
:wq - per salvare e uscire 
:q! – per uscire senza salvare 

Copia / Incolla

yy - copia la riga attuale (es. 20yy copia 20 righe); 
p - paste della riga in memoria;

Cancellazione righe e caratteri

x – cancella il carattere sotto il cursore; 
X – cancella il carattere alla sinistra del cursore; 
D – cancella dalla posizione del cursore alla fine della riga; 
dd – cancella tutta la riga (sulla quale è posizionato il cursore). 
ndd – cancella le n righe successive al cursore (es. 20dd cancella 20 righe dalla attuale in giu’).

Spostarsi nel file

h j k l - corrispondono a sinistra giu su destra;    
nelle versioni più recenti si possono utilizzare i tasti cursore e non serve passare alla modalità comando
^ - inizio riga; 
$ - fine riga; 
G – fine del file; 
1G – inizio del file (in alternativa è possibile usare il comando gg).