mirror of
https://github.com/vim/vim
synced 2025-05-02 06:17:46 +02:00
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
197 lines
7.1 KiB
Text
197 lines
7.1 KiB
Text
===============================================================================
|
|
= Benvenuto alla G u i d a all'Editor V I M - Versione 1.7 =
|
|
===============================================================================
|
|
= C A P I T O L O DUE =
|
|
===============================================================================
|
|
|
|
Hic Sunt Dracones: Se questa è la prima volta che vi accostate a vim
|
|
e preferite iniziare dal capitolo introduttivo, gentilmente immettete
|
|
:q<INVIO> e poi iniziate da quello.
|
|
|
|
Il tempo necessario per completare questo capitolo è di circa 8-10
|
|
minuti, a seconda del tempo utilizzato per fare delle prove.
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Lezione 2.1.1: I REGISTRI CON NOME
|
|
|
|
|
|
** Copiare due parole in registri diversi e poi incollarle **
|
|
|
|
1. Spostate il cursore alla riga qui sotto marcata con --->
|
|
|
|
2. Andate su una lettera qualsiasi di 'Edward' e battete "ayiw
|
|
|
|
MNEMONICO: nel registro(") di nome (a) (y)copia (i)interna (w)parola
|
|
|
|
3. Spostatevi alla parola 'biscotti' (fc o 2fb o $b o /bis<INVIO>)
|
|
e battete "byiw
|
|
|
|
4. Andate su una lettera qualsiasi di 'Vince' e battete ciw<C-r>a<ESC>
|
|
|
|
MNEMONICO: (c)cambia (i)interna (w)parola con <Contenuto (r)egistro> di nome (a)
|
|
|
|
5. Andate su una lettera qualsiasi di 'dolci' e battete ciw<C-r>b<ESC>
|
|
|
|
---> a) Edward sarà d'ora in poi responsabile della razione di biscotti
|
|
b) Come compito, Vince sarà il solo a decidere riguardo ai dolci
|
|
|
|
NOTA: Anche una parola cancellata può essere inviata ad un registro, p.es.,
|
|
"sdiw cancellerà (d) la parola sotto il cursore (iw) e la metterà
|
|
nel registro (s)
|
|
RIFERIMENTI: Registri :h registers
|
|
Registri con nome :h quotea
|
|
Movimento :h motion.txt<INVIO> /inner<INVIO>
|
|
CTRL-R :h insert<INVIO> /CTRL-R<INVIO>
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Lezione 2.1.2: IL REGISTRO DELLE ESPRESSIONI
|
|
|
|
|
|
** Inserire al volo risultati di un calcolo **
|
|
|
|
1. Spostate il cursore alla riga qui sotto marcata con --->
|
|
|
|
2. Andate su un punto qualsiasi del numero fornito
|
|
|
|
3. Battete ciw<C-r>=60*60*24<INVIO>
|
|
|
|
4. Sulla riga seguente, entrate in modo Insert e aggiungete
|
|
la data di oggi con <C-r>=system('date')<INVIO>
|
|
|
|
NOTA: Tutte le chiamate a sistema dipendono dal S.O., p.es., in ambiente
|
|
Windows si usa system('date /t') o :r!date /t
|
|
|
|
---> Non ricordo il numero esatto di secondi in un giorno, è 84600?
|
|
La data di oggi è:
|
|
|
|
NOTA: Lo stesso risultato si può ottenere con :pu=system('date')
|
|
o, ancora più brevemente, con :r!date
|
|
|
|
RIFERIMENTI: Registro espressioni :h quote=
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Lezione 2.1.3: I REGISTRI NUMERATI
|
|
|
|
|
|
** Battere yy e dd per vedere l'effetto sui registri **
|
|
|
|
1. Spostate il cursore alla riga qui sotto marcata con --->
|
|
|
|
2. Copiate (yy) la riga stessa e controllate i registri con :reg<INVIO>
|
|
|
|
3. Cancellate la riga che inizia con "0." con "cdd, poi controllate i
|
|
registri (Dove vi aspettate sia finita la riga cancellata?)
|
|
|
|
4. Continuate a cancellare ogni riga seguente, controllando ogni volta
|
|
con :reg il risultato
|
|
NOTA: Dovreste notare che le righe cancellate per prime scendono nella
|
|
lista, man mano che vengono aggiunte nuove righe cancellate
|
|
5. Poi incollate (p) i seguenti registri nell'ordine; c, 7, 4, 8, 2.+
|
|
ossia "cp "7p ...
|
|
|
|
---> 0. Questo
|
|
9. dondolante
|
|
8. messaggio
|
|
7. è
|
|
6. in
|
|
5. asse
|
|
4. un
|
|
3. guerresco
|
|
2. segreto
|
|
1. tributo
|
|
|
|
NOTA: Le cancellazioni di righe intere (dd) sopravvivono nei registri numerati
|
|
molto più a lungo delle copie di righe intere (yy), o delle
|
|
cancellazioni che implicano movimenti minori
|
|
|
|
RIFERIMENTI: Registri numerati :h quote0
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Lezione 2.1.4: IL FASCINO DELLE MARCATURE
|
|
|
|
|
|
** Evitare di contare le righe di codice **
|
|
|
|
NOTA: Un problema frequente quando si scrivono programmi è spostare numerose
|
|
righe di codice. Il metodo seguente evita di dover calcolare numeri di
|
|
riga con operazioni tipo "a147d o :945,1091d a o, ancor peggio,
|
|
usando prima i<C-r>=1091-945<INVIO>
|
|
|
|
1. Spostate il cursore alla riga qui sotto marcata con --->
|
|
|
|
2. Andate alla prima riga della funzione e marcatela con ma
|
|
|
|
NOTA: La posizione sulla riga NON è importante!
|
|
|
|
3. Spostatevi a fine riga e da qui alla fine del blocco di codice
|
|
con $%
|
|
|
|
4. Cancellate il blocco salvandolo nel registro a con "ad'a
|
|
|
|
MNEMONICO: nel registro(") di nome (a) mettere la cancellazione (d) dal
|
|
cursore fino alla RIGA che contiene il marcatore (') (a)
|
|
|
|
5. Incollare il blocco the le righe BBB e CCC "ap
|
|
|
|
NOTA: Provare più volte quest'operazione, per impratichirsi ma$%"ad'a
|
|
|
|
---> AAA
|
|
function cresciutaTroppoinFretta() {
|
|
if ( condizioneVera ) {
|
|
faiQualcosa()
|
|
}
|
|
// La classificazione della nostra funzione è cambiata
|
|
// non ha senso mantenerla nella posizione attuale
|
|
|
|
// ...immaginate centinaia di righe di codice
|
|
|
|
// Ingenuamente si potrebbe andare dall'inizio alla fine
|
|
// e annotare da qualche parte il numero di righe
|
|
}
|
|
BBB
|
|
CCC
|
|
|
|
NOTA: marcature e registri non hanno niente in comune, quindi il registro
|
|
a è completamente indipendente dalla marcatura a. Questo non vale
|
|
per i nomi dei registri e quelli delle macro di Vim.
|
|
|
|
RIFERIMENTI: Marcature :h marks
|
|
Movimenti marcature :h mark-motions (differenza fra ' e `)
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Lezione 2.1 SOMMARIO
|
|
|
|
|
|
1. Per inserire (copiando, cancellando) testo, e per incollarlo (incolla))
|
|
sono disponibili 26 registri (a-z)
|
|
2. Copiare una parola da una posizione qualsiasi al suo interno: yiw
|
|
3. Cambiare una parola da una posizione qualsiasi al suo interno: ciw
|
|
4. Inserire testo direttamente da registri in modo Insert: (C-r)a
|
|
|
|
5. Inserire il risultato di semplici operazioni aritmetiche in modo
|
|
Insert: (C-r)=60*60<INVIO>
|
|
6. Inserire il risultato di chiamate a sistema in modo Insert:
|
|
(C-r)=system('ls -1')
|
|
|
|
7. Controllare contenuto registri con :reg
|
|
8. Vedere dove vanno a finire le cancellazioni di intere righe: dd
|
|
nei registri numerati, ossia discendendo dal registro 1 al 9.
|
|
Osservare che le righe intere cancellate sono disponibili nei registri
|
|
numerati più a lungo di qualsiasi altra modifica
|
|
9. Vedere la destinazione finale delle operazioni di copia nei registri
|
|
numerati e controllare quanto si può aspettare che durino
|
|
|
|
10. Inserire marcature in modo Normale m[a-zA-Z0-9]
|
|
11. Spostarsi a una riga marcata con il comando '
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Qui finisce il capitolo due della guida Vim. Ci sono lavori in corso.
|
|
|
|
Questo capitolo è stato scritto da Paul D. Parker
|
|
e tradotto da Antonio Colombo
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|