File: tutor2.it

package info (click to toggle)
vim 2%3A9.1.2103-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 93,456 kB
  • sloc: ansic: 433,730; cpp: 6,399; makefile: 4,597; sh: 2,397; java: 2,312; xml: 2,099; python: 1,595; perl: 1,419; awk: 730; lisp: 501; cs: 458; objc: 369; sed: 8; csh: 6; haskell: 1
file content (197 lines) | stat: -rw-r--r-- 7,222 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
===============================================================================
=    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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~