mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
	
	
		
			198 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			198 lines
		
	
	
		
			7.1 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 è 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 | ||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |