Vim For Programmers (ita)

  • Uploaded by: Roberto
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Vim For Programmers (ita) as PDF for free.

More details

  • Words: 3,346
  • Pages: 13
Vim for Programmers - Prima Parte by emitrax_at_gmail_dot_com

Indice • • • • • • • •

1 Premessa 2 Introduzione 3 In che modalità mi trovo?!? 4 Cancella un carattere, una parola, una riga 5 Copia e incolla 6 Taglia e incolla 7 Copia/Taglia e incolla (modalita visuale) 8 Ups ho sbagliato! ...Come torno indietro?!

Premessa L'idea di questo tutorial non è quella di elencarvi le infinite potenzialità di VIM, anche perche non le conosco! Ci sono infiniti documenti su internet a riguardo. La mia idea è quella di fornirvi le informazione che, secondo me, sono le piu utili per un programmatore che vuole usare VIM.

Introduzione Vim è un editor di testo potentissimo, ed essenzialmente è una versione migliorata del famosissimo VI. VIM infatti sta per VI IMproved. E' un editor che utilizza il concetto di modalita. In pratica VIM interpreta ciò che digitate in maniera diversa a seconda della modalita in cui vi troviate. Fondamentalmente esistono tre modalità: comandi, inserimento, e visuale. Nella modalita comandi, com'è facile intuire, qualsiasi cosa digitate sarà interpretata come un comando. Non potete quindi inserire testo ma soltanto eseguire comandi. Nella modalita inserimento invece, qualsiasi cosa digitate sulla tastiera verra inserito nel vostro file di testo. Infine la modalita visuale, serve essenzialmente a selezionare del testo ed è molto semplice da usare.

In che modalità mi trovo?!? Quando aprite un file sarete sempre in modalità comandi, in ogni caso per sapere esattamente in che modalita vi troviate, basta premere due volte il tasto ESC e sarete in modalita comandi. La maggior parte dei comandi inizia per : (due punti). Adesso apriamo un file ed usciamo subito freek syslinux-3.06 $ vi syslinux.h

Per uscire, in modalita comandi digitate: :q

Ogni comando per essere eseguito deve essere seguito da un invio, quindi evitero di scriverlo da adesso in poi. Nel caso facciate delle modifiche al file e cercate di uscire dal file con il comando :q , VIM ve lo impedira, dicendovi che sono state apportate delle modifiche al file e che quindi dovreste

prima salvare e poi uscire. Per salvare le modifiche ed uscire :wq

Oppure per uscire senza salvare :q!

Per uscire e salvare in un colpo solo :x

Sulla modalita inserimento c'è poco da dire. Qualsiasi cosa digitate verra inserito nel file di testo. Per uscire da tale modalita premete il tasto ESC e sarete in modalita comandi. Per poter passare in modalita inserimento, basta premere il tasto i i

Per passare in modalita inserimento, ed iniziare ad inserire dal carattere successivo al cursore a

Spesso è utile iniziare ad inserire da fine riga A

Cancella un carattere, una parola, una riga Il comando per cancellare fondamentalmente è d (delete). In ogni caso per cancellare un carattere x

una parola (w = word) dw

le successive 3 parole dopo il cursore d3w

Ovviamente basta sostituire 3 con il numero di parole che volete cancellare. Per cancellare una riga dd

3 righe d3d

dalla posizione del cursore a FINE RIGA d$

dalla posizione del cursore a INIZIO RIGA, quindi all'indietro d0

Copia e incolla Questa è senza dubbio la prima cosa che un programmatore si chiede appena inizia a prendere confidenza con VIM: "come faccio copia incolla!?" Ok... troppo semplice! Partiamo con il copiare una semplice riga... Passate in modalita comandi ESC ESC

Vi spostate con i tasti direzionali sulla linea che volete copiare e... yy

SENZA i due punti iniziali!!! Adesso spostatevi sulla riga nella quale volete inserire quella appena copiata e premete p

Et voilà! La riga è stata inserita dopo il cursore. P

la inserite prima del cursore. Per copiare piu di una riga, ad esempio 3 righe basta mettere il numero 3 tra le y. Vi spostate sulla prima riga delle 3 che volete copiare e... y3y

Per incollare le righe usate il comando p come sopra. E' possibile ovviamente copiare anche una sola parola, n parole, oppure fino a fine riga o inizio riga, proprio come avete fatto per cancellare. Basta usare il comando y al posto di d. Quindi per copiare una parola yw

Tre parole y3w

Fino a fine riga y$

Fino a inizio riga y0

Taglia e incolla Praticamente è tutto uguale e tale al copia e incolla. Solo che invece di usare il comando y, dovete usare il comando d per cancellare. Infatti ogni qualvolta cancellate qualcosa, VIM lo manterra nel suo buffer!

Copia/Taglia e incolla (modalita visuale) Se pensiate che sia un gran rottura di scatole doversi ricordare tutti i comandi sopra elencati per

copiare 3 righe o 4 parole, non c'è problema!! Dimenticate tutto :-) E passiamo alla modalita visuale! Dalla modalita comandi (doppio ESC) premete v e sarete nella modalita visuale! Se adesso provate a spostarvi con il cursore, il testo verra selezionato! Quindi, selezionate il testo che vi interessa copiare o cancellare e usate i tasti y per copiare e d per cancellare! Poi tornate alla modalita comandi e copiate, se vostra intenzione, il testo che avete copiato/cancellato in modalita visuale! Semplice no?!

Ups ho sbagliato! ...Come torno indietro?! Nel caso abbiate cancellato qualcosa per sbaglio, per annullare l'ultimo comando usate il comando u (undo) u

Per annullare tutti i cambiamenti che avete fatto in una riga U

ATTENZIONE: Se state lavorando su una riga, effettuate modifiche e poi vi spostate su un' altra riga, se dopo tornate su quella riga e provate ad annullare tutte le modifiche con il comando U, non funzionera! Infatti una volta che vi spostate da una riga, VIM scarta le informazioni necessarie a ripristinare quella riga con il comando U.

Vim for Programmers - Seconda Parte Indice • • • • • • • •

1 Introduzione 2 Muoversi velocemente con VIM 3 Ricerca 4 Sostituzione 5 Eseguire comandi UNIX da VIM 6 Piu finestre con VIM 7 Piu file con VIM 8 Bookmarks in un sorgente

Introduzione Se avete letto la prima parte, dovreste avere un'infarinatura generale sul come funziona VIM. Adesso vedremo altre funzioni molto utili come ad esempio la ricerca, la sostituzione e quant'altro mi passa per la testa! ;-)

Muoversi velocemente con VIM Ci sono alcuni comandi molto utili che permettono di spostarsi all'interno di un file in maniera molto rapida! Vediamone qualcuno... Per andare ad inizio riga si usa lo 0 (zero) 0

Fine riga il dollaro $

Per andare alla riga 312, ad esempio, dalla modalita comandi scrivete 312 seguito da G (maiuscola) 312G

Oppure :312

Se invece volete aprire un file e spostarvi direttamente alla riga 312 vim nomefile.c +312

Et voilà! Siamo alla riga 312! Comodo no?! Soprattutto quando gcc non è molto d'accordo sulla nostra sintassi! ;-) Per sapere di quante righe è il file , dalla modalita comandi premete ctrl+g ed in basso a sinistra avrete la risposta! Oppure se volete che le righe vengano numerate, potete settare VIM affinche vi numeri le righe con :set number

Per non numerare le righe :set nonumber

Continuando con gli spostamenti, per andare all'ultima riga si usa $, quindi $G

Oppure :$

Se poi invece vogliamo aprire un file e dire a VIM di posizionare il cursore sulla linea che contiene una determinata stringa basta fare vi mioprogramma.c +/nomefunzione

Indovinate su quale riga si è posizionato il cursore una volta aperto il file?! Provatelo! Per spostarsi invece dalla definizione di una funziona ad un altra in maniera molto veloce si usano i comandi ]] e [[ Prossima funzione ]]

Funzione precedente [[

Ricerca Per effettuare le ricerche, dalla modalità comandi, si usano i comandi / (forward slash) e ? seguiti dalla stringa che state cercando. Ad esempio /main

Cerchera la stringa main dalla posizione del cursore in giu, fino alla fine del file per poi ricominciare dall'inizio del file. ?main

Farà il contrario, cioè dalla posizione del cursore all'inizio del file, per poi continuare dalla fine del file all'insù fino alla posizione del cursore. Personalmente credo che la ricerca con lo / sia piu che sufficiente. Nel caso sono presenti piu istanze della stringa main, potete passare alla successiva tramite il tasto n /stringa n (per vedere la successiva)

Per vedere l'istanza precedente invece N

Spesso le istanze trovate vengono evidenziate, e ciò risulta essere davvero noisoso! Per disabilitare l'opzione usate il comando :set nohlsearch

Dove hl sta per highlight. Ve lo dico perche cosi vi viene piu facile ricordare poi il comando. ;-) Infine, un altro modo per cercare una stringa e il comando * .Basta infatti posizionarsi sulla stringa

che volete cercare, premete * in modalita comandi, e con n e N potrete cercare le successive istanza di quella stringa. Comodo per vedere dove viene usata una variabile ad esempio. *

Sostituzione Vediamo adesso quali sono i comandi piu utili per effettuare le sostituzioni Il piu utile in assoluto, secondo me, è il comando che vi permette di cambiare tutte le occorrenze di una determinata stringa con una nuova. :1,$ s/stringaDaCambiare/nuovaStringa/g

Allora... 1,$ dice a VIM di cambiare tutte le istanze dalla riga numero 1 all'ultima. s indica si sostituire tutte le istanze di "stringaDaCambiare" con "nuovaStringa" e g serve ad indicare a VIM di sostituire tutte le istanze nelle righe e non solo la prima per riga. Infatti se aveste omesso la g, VIM avrebbe sostituito solo la prima istanza per riga. Se volete che si vi venga chiesta conferma prima di effettuare una sostituzione basta aggiungere la c (confirme) dopo la g :1,$ s/stringaDaCambiare/nuovaStringa/gc

Se invece volete cambiare solo la prima istanza della riga corrente :s/vecchio/nuovo

Per tutte le istanze della riga corrente aggiungete la g. Per cambiare invece solo le istanze dalla riga n alla riga m :n,m s/nuovo/vecchio/gc

Credo abbiate capito come funzioni il gioco! :-) Se invece vogliamo spingerci fino all'extreme :-) e vogliamo cambiare una determinata istanza in tutti i file che abbiamo aperto (vedi sezione Piu file con VIM), usiamo il comando :bufdo %s/vecchio/nuovo/g

Chi sa fare di meglio?!?! Se invece dovete semplicemente sostituire un carattere, posizionatevi su quel carattere in modalita comandi ed usante il comando r (replace). Se ad esempio avete scritto maan al posto di main, spostavi sulla seconda a e usate il comando ri

Questo sostituira il carattere a con i. Se invece dovete sostituire un intera parola cw

Iniziate a scrivere e vedrete che VIM prima cancellera la parola e poi passera in modalita inserimento per permettervi di scrivere. E' facile intuire che possiamo fare lo stesso per quante parole vogliamo, tipo 3 c3w

Oppure fino a fine riga o inizio riga c$ c0

Eseguire comandi UNIX da VIM Volete sapere in che directory vi trovate senza uscire da VIM?! Oppure volete eseguire un qualsiasi altro comando senza uscire da VIM?! Ok... nessun problema! :!comandolinux

Ad esempio :!ls

Piu finestre con VIM Adesso arriva il vero divertimento! Aprite un qualsiasi sorgente con VIM. Adesso immaginiamo che non vi ricordate com'era fatta esattamente una determinata struttura che sta in un altro header ed avete bisogno di aprire il file ma non volete uscire dal corrente... perche non aprire un altra finestra con VIM!? Dalla modalita comandi premete ctrl+w+n ,dove w sta per window e n sta per new (almeno credo!). ctrl+w+n

Et voilà! Adesso aprite l'altro header nella nuova finestra, usando il comando e (edit) :e .

I due punti iniziali e il punto finale non sono un errore! Dovete metterli. Nella nuova finestra vedrete listati le directory ed i sorgenti presenti nella directory corrente. Con i tasti direzionali scegliete il file di vostro interesse ed apritelo con invio. Avrete adesso due file aperti contemporaneamente! Per passare da una finestra all'altra basta usare il comando ctrl+w+w ctrl+w+w

Per chiuderne una basta passare ad essa con ctrl+w+w ed uscire dal file che state editando semplicemente con il comando :q Potete aprire quante finestre volete con il comando ctrl+w+n, ma personalmente credo che 2 siano sufficienti, anche perche poi non si capisce piu niente. Per passare da una finestra all'altra basta usare sempre la combinazinoe ctrl+w+w. Divertente per esempio potrebbe essere, chattare con irssi in una finestra mentre programmate nell'altra! :-) vim miofile.c ctrl+w+n :!irssi

Simpatico vero?!?!

Piu file con VIM Se invece volete aprire un altro file, ma non volete ne aprire un altra finestra ne chiudere il file corrente, potete semplicemente usare il comando e. :e nuovofile.c

Oppure :e .

Per selezionare il file. Il file corrente non verra chiuso, ma continuera a rimanere aperto. Potete aprire quanti file volete. Per sapere quanti file avete aperto usate il comando :ls

ATTENZIONE: non confondetelo con :!ls Questo è un output del comando :ls sul mio computer :ls 1 "motionDetectorMain.h" line 1 3 "~/programming/cv/Motion Tracking 0.0.1/motionDetectorMain.cpp" line 223 4 %a "~/programming/cv/Motion Tracking 0.0.1/Makefile" line 21 Hit ENTER or type command to continue

Una volta visualizzati i file aperti, potete tornare ad editare uno di essi con :e #n

dove n è il numero associato a quel file dall'output di ls. Ad esempio se volevo editare il file motionDetectorMain.cpp avrei dovuto fare :e #3

Poiche 3 è il numero associato ad esso(prima colonna). Per chiudere invece un file, potete usare il comando bd :bd 3

Ovviamente al posto di 3 dovete mettere il numero del file listato da ls che volete chiudere. Comodo no?!?!

Bookmarks in un sorgente Un altra potente caratteristica di VIM è la possibilità di "marcare" una determinata riga di codice e tornarci da qualsiasi file e/o riga di codice ci troviamo in un attimo! Per marcare una riga, basta posizionarsi sulla riga con il cursore ed usare il comando m seguito dalla lettera con la quale si vuole marcare la riga. Se per esempio vogliamo marcare la riga 314 con la lettera a facciamo :314 ma

Se poi vogliamo invece marcare la riga con il main con la lettera b facciamo /main ESC mb

Per poi tornare a quella riga, si usa l'apice singolo seguito dalla lettera che abbiamo usato per marcare la riga. Esempio, per tornare alla riga con il main 'b

Per listare tutti i bookmarks che abbiamo usato, utilizziamo il comando :marks

Vim for Programmers - Terza Parte Indice • • • • • • • •

1 Introduzione 2 Make: compiliamo da VIM 3 Completazione Automatica 4 Identazione automatica 5 CTAGS e VIM 6 Cscope e VIM 7 Help di VIM 8 Conclusione

Introduzione Questa è la terza ed ultima parte del mio piccolo tutorial riguardo a VIM e alla sue potenzialità per programmatori. In quest'ultima parte vedremo com'è possibile compilare da VIM, navigare tra gli errori, ma soprattutto vi introdurro due carissimi amici di VIM che fanno proprio al caso di un programmatore: cscope e ctags.

Make: compiliamo da VIM Le operazioni che esegue piu spesso un programmatore sono la compilazione, l'editing e il testing dell'applicazione. Quindi se si potesse compilare senza uscire dall'editor sarebbe un vantaggio. VIM ci permette di farlo, utilizzando make, senza uscire dal file. :make

Comodo direi. E' ovviamente necessario che sia presente un Makefile nella directory corrente! Ancora piu comodo è la gestione degli errori. Se infatti il vostro codice non compila, VIM vi porta direttamente alla prima riga con l'errore elencata da gcc. Usando poi il comando :clist

Potrete vedere la lista di tutti gli errori e le relative righe riportate da gcc. Per navigare tra i vari errori potrete usare il comando :cn

per andare all'errore successivo. Non credo abbiano bisogno spiegazioni i comandi :cfirst :clast

che portano al primo e all'ultimo errore rispettivamente.

Completazione Automatica Pensavate che solo gli enormi IDE tipo kdevelop avessero a disposizione una caratteristica del

genere?!? Mi dispiace, ma vi devo deludere! Provate a scrivere le prime lettere di una qualsiasi struttura, variabile, funzione o quello che volete, e poi dalla MODALITA INSERIMENTO usate il comando ctrl+n

Sorpresi?! ATTENZIONE: NON DOVETE PASSARE IN MODALITA COMANDI per usare il precedente comando. Funziona solo in modalita inserimento. Mentre scrivete premete ctrl+n e basta! Per iterare tra le varie opzioni che fornisce l'autocompletamento continuate ad usare ctrl+n ctrl+p

Serve per tornare all'opzione precedente. N sta per next e P per previous! Facile da ricordare. L'opzione dell'autocompletamento funziona meglio con il file tags settato (vedi sezione CTAGS e VIM )

Identazione automatica Un altra caratteristica di VIM , che molto aiuta, è l'autoidentazione o l'indentazione di un intero file. Voi infatti potete, abilitare l'identazione automatica con il comando :set autoindent

Oppure scrivere tutto il vostro codice automaticamente per poi identarlo TUTTO in una volta con il comando gg=G

Avete ragione, questo comando differisce un po dalla sintassi dei precedenti, ed onestamente non so il perche! Un altro modo comunque per identare un testo che avete selezionato è il comando uguale. Selezionato il testo dalla modalita visuale ed usate il comando =

VIM in un nanosecondo vi identera il testo selezionato. Infine quante volte avete scritto un commento che sfora dalla riga e non sapete come identarlo?! Con VIM basta usare il comando gq

per identare automaticamente i commenti dopo averli inseriti.

CTAGS e VIM Ctags praticamente è un plugin di VIM che facilita ancora di piu la navigazione tra i sorgenti. E' piuttosto semplice da usare. Dalla directory root dei vostri sorgenti, ad esempio i sorgenti di linux, eseguite cd /usr/src/linux exuberant-ctags -R .

A questo punto verra creato un file tags nella directory corrente con tutte le informazioni necessarie a VIM per portarvi da una parte all'altra. Adesso aprite un qualsiasi file dalla directory corrente. Questo vuol dire che se avete un file adesso in una sottodirectory, dovete aprirlo specificando l'intero path relativo, invece che spostarvi in quella directory e poi aprirlo. Questo perche VIM deve avere come directory corrente quella in cui risiede il file tags generato da exuberant-ctags. In realtà

comunque è anche possibili spostarsi in quella directory e continuare ad usare ctags, ma in questo caso bisogno settare VIM affinche vada ad usare il tags in quella directory invece di cercarne uno nella directory corrente. Il comando da usare da VIM per settera il file di tags è :set tags=../../tags

Con tags ipotizzando che sia due directory sopra. Ok adesso navighiamo tra il codice. Se per esempio incontrate una chiamata a funzione, diciamo la pritnk, link titleposizionate il cursore su di essa e premete ctrl+]

VIM vi portera immediatamente alla sua definizione!!! E' facile intuira la potenza di questo strumento. Per tornare indietro basta premere ctrl+t

Per maggiori info vi rimando comunque all'homepage di ctags

Cscope e VIM Un altro tool davvero molto carino ed utile per navigare tra i sorgenti in coppia con VIM è proprio cscope. Anch'esso è molto semplice da usare. Dalla directory radice dei sorgenti cscope -R

verra creato un file cscope.out con tutte le informazioni necessarie. Fate attenzione che il comando precedente potrebbe richiedere alcuni secondi per essere completato se eseguito ad esempio nella directory radice che contiene i sorgenti del kernel di linux. Adesso avviate cscope dalla stessa directory che contiene cscope.out cscope

Un piccolo menu vi verra presentato in basso. Per scorrere tra le voci usate i tasti direzioneli, mentre per passare tra il menu e i risultati delle ricerche usate il tasto TAB. Esempio, se volete cercare una chiamata a funzione printk del kernel andate alla voce Find this C symbol:

inserite printk e premete invio. Nella parte alta vi verranno visualizzate i risultati della ricerca. Posizionatevi sul risultato che vi interessa, premete invio e VIM verra avviato a quella riga che contiene quella chiamata. Una volta usciti tornerete al menu di cscope. Per uscire da cscope usate ctrl+d. Anche in questo caso, vi rimando all'homepage di cscope per maggiori informazioni.

Help di VIM Ci sono tantissime cose che non vi ho detto di VIM, sia perche non le so, sia perche non ho tempo per studiarmele. Esiste comunuque tantissima documentazione alla quale potete accedere tramite il comando :help

Se ad esempio volete piu info sul come marcare una pagina usate :help '

Oppure, ancora piu importante, non vi ho detto che come qualsiasi altro programma, VIM ha un file

di configurazione che si chiama vimrc. Per saperne di piu :help vimrc

Buona lettura!! ;-)

Conclusione Mi auguro di essere riuscito a convincervi che con VIM, si puo comunque programmare tranquillamente, facendo a meno di quei pesantissimi IDE, che intasano la memoria ;-)

Related Documents

Vim
November 2019 30
Vim
May 2020 17
C# For Programmers
June 2020 12

More Documents from ""

Www.fotosenpopart.com
May 2020 22
June 2020 23
Paleografia Parte 1
December 2019 44
Up_partitur.pdf
November 2019 33