mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05:00 
			
		
		
		
	
		
			
	
	
		
			198 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			198 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								===============================================================================
							 | 
						|||
| 
								 | 
							
								=    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 <20> 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 <20> 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<61> d'ora in poi responsabile della razione di biscotti
							 | 
						|||
| 
								 | 
							
								      b) Come compito, Vince sar<61> il solo a decidere riguardo ai dolci
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								NOTA: Anche una parola cancellata pu<70> essere inviata ad un registro, p.es.,
							 | 
						|||
| 
								 | 
							
								      "sdiw canceller<65> (d) la parola sotto il cursore (iw) e la metter<65>
							 | 
						|||
| 
								 | 
							
								      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, <20> 84600?
							 | 
						|||
| 
								 | 
							
								     La data di oggi <20>: 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								NOTA: Lo stesso risultato si pu<70> ottenere con   :pu=system('date')
							 | 
						|||
| 
								 | 
							
								      o, ancora pi<70> 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. <20>
							 | 
						|||
| 
								 | 
							
								     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<70> 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 <20> 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 <20> 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<70> volte quest'operazione, per impratichirsi    ma$%"ad'a
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								---> AAA
							 | 
						|||
| 
								 | 
							
								     function cresciutaTroppoinFretta() {
							 | 
						|||
| 
								 | 
							
								       if ( condizioneVera ) {
							 | 
						|||
| 
								 | 
							
								         faiQualcosa()
							 | 
						|||
| 
								 | 
							
								       }
							 | 
						|||
| 
								 | 
							
								       // La classificazione della nostra funzione <20> 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 <20> 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<70> a lungo di qualsiasi altra modifica
							 | 
						|||
| 
								 | 
							
								  9. Vedere la destinazione finale delle operazioni di copia nei registri
							 | 
						|||
| 
								 | 
							
								     numerati e controllare quanto si pu<70> 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 <20> stato scritto da Paul D. Parker
							 | 
						|||
| 
								 | 
							
								  e tradotto da Antonio Colombo
							 | 
						|||
| 
								 | 
							
								~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
							 |