sabato 12 giugno 2010

Copy of Guida a VIM

 



 Vim è un editor di testo open source e multipiattaforma molto apprezzato da chi ama la linea di comando. Esso infatti non è dotato di interfaccia grafica e il suo utilizzo si basa su una serie di comandi.



Vim



 (Vi IMproved) è nato sulla base di Vi, uno storico editor di testo dei sistemi UNIX-like. La sua evoluzione ha permesso di integrare funzionalità per la modifica del codice sorgente o dei file di configurazione, per la stesura di email e molto altro.



 


Vim si trova preinstallato su tutte le distribuzioni Linux, quindi impariamo ad usarlo in modo abbastanza completo e scopriamo tutti i segreti per gestirlo al meglio.


 


La caratteristica fondamentale di Vim è la sua natura modale, ovvero i normali caratteri della tastiera hanno significato sia di inserimento testo che di comandi usati per gestire l’ambiente di scrittura. Questo significa che lo possiamo utilizzare anche senza il mouse.


Sommario



  1. Movimenti base del cursore

  2. Movimenti avanzati

  3. Intervalli di selezione

  4. Inserimento

  5. Sostituzione

  6. Cancellazione

  7. Copia e Incolla

  8. Trova e sostituisci

  9. Ripristino di operazioni

  10. Gestione dei file (Salva, …)


—————————————————


1. Movimenti di base del cursore


k / j ……………………………………… muovi cursore in [alto / basso]

h / l ……………………………………… muovi cursore a [sinistra / destra]


w ……………………………………… vai all’inizio della prossima parola

b ……………………………………… vai all’inizio della parola precedente

e ……………………………………… vai alla fine della parola successiva

W, B, E ……………………………………… come w, b, e ma delimitata da spazi


( / ) ……………………………………… vai all’inizio o alla fine della riga

{ / } ……………………………………… vai all’inizio o alla fine del paragrafo


0 / gm / $ ……………………………………… vai all’inizio, a metà o alla fine della riga del cursore


^ ……………………………………… vai al primo carattere non spazio della riga

+ ……………………… vai al primo carattere non spazio della riga successiva

- ……………………… vai al primo carattere non spazio della riga precedente

n| ……………………………………… vai alla n-esima colonna della riga corrente

% ……………………………… cerca la prossima parentesi, commento, define



2. Movimenti avanzati


G / 1G ……………………………………… vai all’inizio o alla fine del file

n% ……………………………………… posiziona alla percentuale specificata del file


nG o :n INVIO ……………………………………… vai alla riga n


H ……………………………………… vai alla prima riga dello schermo

nH ……………………………………… vai alla riga n dall’inizio dello schermo

M ……………………………………… vai alla riga mediana dello schermo


L ……………………………………… vai all’ultima riga dello schermo

nL ……………………………………… vai n righe prima della fine dello schermo


[( / ]) ……………………………………… vai alla () non chiusa [precedente o successiva]

[{ / ]} ……………………………………… vai alla {} non chiusa [ " o "]


[* ............................................. vai all'inizio di /* */ precedente

]* ……………………………………… vai alla fine di /* */ successivo


CTRL e ……………………………………… muovi lo schermo una linea in alto

CTRL y ……………………………………… muovi lo schermo una linea in basso

CTRL b ……………………………………… muovi lo schermo di una pagina in alto

CTRL f ……………………………………… muovi lo schermo di una pagina in basso


z INVIO ……………………………………… riga corrente come prima dello schermo

nz INVIO ……………………………………… riga n del file come prima dello schermo

z. ……………………………………… riga corrente posizionata a metà schermo

z- ……………………………………… riga corrente ultima dello schermo

nz. / nz- ……………………………………… come z. e z- per una riga n-esima generica



3. Intervalli di selezione


:n,m ……………………………………… seleziona da riga n a m

:. ……………………………………… seleziona la riga corrente

:$ ……………………………………… seleziona la fine del file

:’c ……………………………………… utilizza il marcatore c

:% ……………………………………… seleziona tutte le righe



4. Inserimento


i / a ……………………………………… inserisci prima o dopo del cursore

I / A ……………………………………… inserisci all’inizio o alla fine della riga

gI ……………………………………… inserisci nella prima colonna

o / O ……………………… inserisci una nuova riga sotto o sopra quella corrente

notext ESC ……………………………………… inserisci n volte il testo text


:r /etc/passwd INVIO …………………… inserisci il contenuto di passwd nel documento

:r! comando INVIO …………………… inserisci l’output del comando nel documento


:set ai INVIO ……………………………………… attiva l’indentazione

:set sw=INVIO …………………… imposta a n i caratteri di indentazione


<< ................................. sposta a sinistra di un livello di indentazione

>> ……………………………………… sposta a destra di un livello di indentazione

n<< / n>> ……………………………………… sposta di n livelli di indentazione



5. Sostituzione


rc ……………………………… sostituzione del carattere sotto al cursore con c

grc ……………………………………… come rc ma va in modalità inserimento

Rtext ……………………………………… sostituisce i caratteri che seguono con text

gRtext ……………………………………… come grc ma va in modalità inserimento


s ……………………………………… cancella un carattere ed entra in modalità inserimento

S o cc …………………………… cancella la riga corrente ed entra in inserimento

cw …………………………… cancella fino a fine parola ed entra in inserimento

c$ o C …………………………… cancella fino a fine riga ed entra in inserimento


~ ………………………………inverti maiuscolo / minuscolo e avanza il cursore



6. Cancellazione


x / X ……………………………………… cancella il carattere [sotto al / sopra del] cursore.

nx / nX ……………………………………… come x o X ma per n caratteri

dw ……………………………………… cancella fino alla fine della parola

ndw ……………………………………… cancella n parole seguenti

d$ o D ……………………………………… cancella fino alla fine della riga

dd ……………………………………… cancella tutta la riga

ndd ……………………………………… cancella n righe seguenti


J ……………………………………… unisce la riga successiva a quella corrente

gJ ……………………………………… come J senza modificare gli spazi

nJ / ngJ ……………………………………… cancella n righe seguenti


:rd INVIO ……………………………………… cancella le righe nell’intervallo r specificato

:rd x INVIO ……………………………………… muovi le righe nell’intervallo r nel registro x



7. Copia e incolla


“x …………………………… usa il registro x (a-z) per le operazioni di copia o taglia

:reg INVIO ……………………………………… mostra il contenuto di tutti i registri

:reg x INVIO ……………………………………… mostra il contenuto del registro x


yy o Y ……………………………………… copia la riga corrente nel registro attuale

p / P …………………………… incolla il contenuto del registro [prima / dopo] cursore

]p / [p .............................. come p / P ma con un livello di indentazione

gp / gP .............................. come p / P con il cursore dopo il testo incollato



8. Trova e sostituisci


fc / Fc ........................... [prosegui / torna indietro] fino a raggiungere c

/stringa ……………………………………… cerca in avanti la stringa

?stringa ……………………………………… cerca indietro la stringa

n / N ……………………………………… ripeti la ricerca nella [stessa / inversa] direzione

# ……………………………………… cerca una precedente occorrenza

* ……………………………………… cerca una successiva occorrenza

g# / g* ……………………………………… anche occorrenze parziali


:set ic INVIO ……………………………………… non considera maiuscole o minuscole

:set noic INVIO ……………………………………… considera maiuscole e minuscole



9. Ripristina una operazione


u ……………………………………… annulla l’effetto dell’ultimo comando

U ………………………… riporta la linea corrente alla situazione precedente

. ……………………………………… ripeti ultima modifica



10. Gestione file e uscita


:w file INVIO …………………………… salva il documento con il nome file

:w >> file INVIO …………………………… effettua l’append del documento sul file

:n,mw file INVIO ………………………… scrivi su file le righe da n a m

:wq INVIO …………………………… esci e salva il documento