Home > Linux > Vim / Vi editor

Vim / Vi editor

VI è un editor per terminale nato nel lontano 1976.
VIM ( Vi IMproved)  è una estensione di VI e viene anche considerato l’editor di testo definitivo. E’ presente praticamente in tutti i sistemi unix-like. Esiste una versione con interfaccia grafica  GVim anche per Window la versione per Mac OS X è denominata MacVim.

A dispetto della usabilità VIM dispone di funzioni molto avanzate che lo rendono un ottimo cortellino svizzero.

Vim offre il supporto per i linguaggi di programmazione più popolari, consente di editare files dentro archivi compressi, la comparazione di files  ( vimdiff ), consente lo split dello schermo per consentire l’editing multiplo dei files.

Comandi principali:

[ctrl]+c  [ESC] sono i tasti usati per passare dalla modalità di editing alla modalità comandi.
[:]  quando si digita il tasto  :  il simbolo appare in basso sullo schermo è si possono scrivere i vari comandi
[:help] il comando  help consente di accedere ad un chiaro tutorial  ed ad indicazioni di aiuto complete

:q         per uscire  ( abbreviazione di :quit)
:q!        uscire senza salvare
:x  o :wq  salva ed esci     
:wq!       salvare e uscire anche se il file ha solo il permesso di lettura
           (viene forzato il salvataggio) 
:qa        per uscire da tutto ( abbreviazione :quitall )

Modalità inserimento

 i        inserisci prima del cursore
 a        inserisci (aggiungi) dopo il cursore
 I        inserisci all'inizio della linea
 A        inserisci (aggiungi) alla fine della linea
 o        aggiungi (apri) una nuova linea sotto la linea corrente
 O        aggiungi (apri) una nuova linea sopra la linea corrente
 ea       inserisci (aggiungi) alla fine della parola
 :r file  leggi il file e lo inserisce dopo la linea     
 Esc      esci dalla modalità inserimento

Taglia e incolla

x   cancella (taglia) carattere a destra del cursore  
X   cancella (taglia) carattere a sinistra del cursore 
D   cancella (taglia) fino alla fine della linea
dd  cancella (taglia) la linea corrente
yy  copia una linea
yw  copia una parola
y$  copia fino alla fine della linea
p   incolla dopo il cursore
P   incolla prima del cursore
dw  cancella (taglia) una parola
d$ - cancella (taglia) fino alla fine della linea

Modifica

u    annulla l'ultima modifica
J    unisci la linea sottostante con quella corrente
nJ   unisci le n linee seguenti
.    ripeti l'ultimo comando
U    annulla tutte le modifiche alla linea
Ctrl + r - ripeti l'ultima modifica

Comandi della modalità visuale

 v   inizia modalità visuale  
 >   scorri testo a destra 
 <   scorri testo a sinistra
 y   copia testo selezionato
 d   elimina testo selezionato
 ~   inverti maiuscole e minuscole

Movimento del cursore

h - muovi cursore a sinistra
 j - muovi cursore in basso
 k - muovi cursore in alto
 l - muovi cursore a destra
 w - salta avanti fino all'inizio di una parola
 W - salta avanti fino all'inizio di una parola (le parole possono contenere punteggiatura)
 e - salta avanti fino alla fine di una parola
 E - salta avanti fino alla fine di una parola (le parole possono contenere punteggiatura)
 b - salta indietro fino all'inizio di una parola
 B - salta indietro fino all'inizio di una parola (le parole possono contenere punteggiatura)
 0 - salta all'inizio della linea
 ^ - salta fino al primo carattere non vuoto della linea
 $ - salta alla fine della linea
 g_ - jump to the last non-blank character of the line
 gg - go to the first line of the document
 G - vai all'ultima linea del documento
 5G - vai alla linea 5
 fx - jump to next occurrence of character x
 tx - jump to before next occurrence of character x
 } - jump to next paragraph (or function/block, when editing code)
 { - jump to previous paragraph (or function/block, when editing code)
 Ctrl + b - move back one full screen
 Ctrl + f - move forward one full screen
 Ctrl + d - move forward 1/2 a screen
 Ctrl + u - move back 1/2 a screen
 Tip Anteponi un comando di movimento del cursore con un numero per ripeterlo. Per esempio, 4j muove in basso di 4 linee.

 

Tutorial

Esistono tutorial interattivi per provare ed apprendere vim   tutorial VIM sito ufficiale www.openvim.com  oppure questa versione parzialmente tradotta in italiano  tutorial vim con traduzione in italiano  

Cheat Sheet Vi Cheat Sheet

Vi / Vim Graphical Cheat Sheet

Beautiful VIM Cheat Sheet

VIM Cheat Sheet for Programmers

Mobile Friendly VIM Cheat Sheet

Vim Cheat Sheet

 

Risorse:

 

Vim Cheat Sheet in italiano

Modalità inserimento – aggiungi testo

 i       inserisci prima del cursore
 I       inserisci all'inizio della linea
 a       inserisci (aggiungi) dopo il cursore
 A       inserisci (aggiungi) alla fine della linea
 o       aggiungi (apri) una nuova linea sotto la linea corrente
 O       aggiungi (apri) una nuova linea sopra la linea corrente
 ea      inserisci (aggiungi) alla fine della parola
 Esc     esci dalla modalità inserimento

Movimento del cursore

h   muovi cursore a sinistra
j   muovi cursore in basso
k   muovi cursore in alto
l   muovi cursore a destra
w   salta avanti fino all'inizio di una parola
W   salta avanti fino all'inizio di una parola (le parole possono contenere punteggiatura)
e   salta avanti fino alla fine di una parola
E   salta avanti fino alla fine di una parola (le parole possono contenere punteggiatura)
b   salta indietro fino all'inizio di una parola
B   salta indietro fino all'inizio di una parola (le parole possono contenere punteggiatura)
0   salta all'inizio della linea
^   salta fino al primo carattere non vuoto della linea
$   salta alla fine della linea
g_  jump to the last non-blank character of the line
gg  go to the first line of the document
G   vai all'ultima linea del documento
5G  vai alla linea 5
fx  jump to next occurrence of character x
tx  jump to before next occurrence of character x
}   jump to next paragraph (or function/block, when editing code)
{   jump to previous paragraph (or function/block, when editing code)
Ctrl + b  move back one full screen
Ctrl + f  move forward one full screen
Ctrl + d  move forward 1/2 a screen
Ctrl + u  move back 1/2 a screen
Tip Anteponi un comando di movimento del cursore con 
un numero per ripeterlo. Per esempio, 4j muove in basso di 4 linee.

Modifica

r - sostituisci un singolo carattere
J - unisci la linea sottostante con quella corrente
cc - cambia (sostituisci) l'intera linea
cw - cambia (sostituisci) fino alla fine della parola
c$ - cambia (sostituisci) fino alla fine della linea
s - cancella carattere e sostituisci testo
S - cancella linea e sostituisci testo (uguale a cc)
xp - scambia due lettere (cancella e incolla)
u - annulla l'ultima modifica
Ctrl + r - ripeti l'ultima modifica
. - ripeti l'ultimo comando

Seleziona testo (modalità visuale)

v - inizia modalità visuale, seleziona linee, quindi esegui un comando (per esempio y-copia)
V - inizia modalità visuale su linee intere
o - vai all'altro capo dell'area selezionata
Ctrl + v - inizia modalità visuale su blocchi
O - vai ad un altro angolo del blocco
aw - seleziona una parola
ab - un blocco con ()
aB - un blocco con {}
ib - un blocco con () (parentesi escluse)
iB - un blocco con {} (parentesi escluse)
Esc - esci dalla modalità visuale

Comandi della modalità visuale

– scorri testo a destra
< – scorri testo a sinistra
y – copia testo selezionato
d – elimina testo selezionato
~ – inverti maiuscole e minuscole
Taglia e incolla
yy – copia una linea
2yy – copia due linee
yw – copia una parola
y$ – copia fino alla fine della linea
p – incolla dopo il cursore
P – incolla prima del cursore
dd – cancella (taglia) una linea
2dd – cancella (taglia) due linee
dw – cancella (taglia) una parola
D – cancella (taglia) fino alla fine della linea
d$ – cancella (taglia) fino alla fine della linea
x – cancella (taglia) carattere

Uscire

:w - scrivi (salva) il file, ma non uscire
:w !sudo tee % - write out the current file using sudo
:wq or :x or ZZ - scrivi (salva) ed esci
:q - esci (fallisce se ci sono modifiche non salvate)
:q! or ZQ - esci e ignora modifiche non salvate

Cerca e sostituisci

/pattern - cerca pattern
?pattern - carca pattern all'indietro
\vpattern - 'very magic' pattern: non-alphanumeric characters are interpreted as special regex symbols (no escaping needed)
n - ripeti ricerca nella stessa direzione
N - ripeti ricerca nella direzione opposta
:%s/old/new/g - sostituisci old con new in tutto il file
:%s/old/new/gc - sostituisci old con new in tutto il file senza chiedere conferma
:noh - remove highlighting of search matches
Search in multiple files
:vimgrep /pattern/ {file} - search for pattern in multiple files
e.g. :vimgrep /foo/ **/*
:cn - jump to the next match
:cp - jump to the:tabnew filename or :tabn filename - apri un file in un nuovo tab
Ctrl + wT - muovi la finestra corrente nel suo proprio tab
gt or :tabnext or :tabn - vai al tab successivo
gT or :tabprev or :tabp - vai al tab precedente
#gt - vai al tab numero #
:tabmove # - muovi il tab corrente nella #-esima posizione (l'indice parte da 0)
:tabclose or :tabc - chidi il tab corrente e tutte le sue finestre
:tabonly or :tabo - chudi tutti i tab tranne quello corrente
:tabdo command - run the command on all tabs (e.g. :tabdo q - closes all opened tabs) previous match
:copen - open a window containing the list of matches

Lavorare con file multipli

:e filename - modifica file in un nuovo buffer
:bnext or :bn - vai al buffer successivo
:bprev or :bp - vai al buffer precedente
:bd - cancella un buffer (chiudi un file)
:ls - list all open buffers
:sp filename - apri file in un nuovo buffer e dividi la finestra
:vsp filename - apri file in un nuovo buffer e dividi la finestra verticalmente
Ctrl + ws - dividi finestra
Ctrl + ww - cambia finestra
Ctrl + wq - esci da una finestra
Ctrl + wv - dividi finestra verticalmente
Ctrl + wh - muovi cursore sul buffer successivo (a destra)
Ctrl + wl - muovi cursore sul buffer precedente (a sinistra)
Ctrl + wj - move cursor to the window below (horizontal split)
Ctrl + wk - move cursor to the window above (horizontal split)

Tabs

:tabnew filename or :tabn filename - apri un file in un nuovo tab
Ctrl + wT - muovi la finestra corrente nel suo proprio tab
gt or :tabnext or :tabn - vai al tab successivo
gT or :tabprev or :tabp - vai al tab precedente
#gt - vai al tab numero #
:tabmove # - muovi il tab corrente nella #-esima posizione (l'indice parte da 0)
:tabclose or :tabc - chidi il tab corrente e tutte le sue finestre
:tabonly or :tabo - chudi tutti i tab tranne quello corrente
:tabdo command - run the command on all tabs (e.g. :tabdo q - closes all opened tabs)

 

 

 

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: