*usr_24.txt*	Per Vim version 6.2.  Ultima modifica: 2003 Ago 18

		     VIM USER MANUAL - di Bram Moolenaar
	       Traduzione di questo capitolo: Giuliano Bordonaro

			     Inserzione rapida


Quando immettete del testo, Vim vi offre molti modi per ridurre il numero di
battute ed evitare errori di battitura.  Utilizzate l'Insert mode completion
per ripetere le parole battute in precedenza.  Accorciate le parole lunghe in
parole brevi.  Scrivete caratteri che non sono presenti in tastiera.

|24.1|	Effettuare correzioni
|24.2|	Evidenziare le corrispondenze
|24.3|	Completamento
|24.4|	Ripetizione ed inserimento
|24.5|	Copiare da un'altra linea
|24.6|	Inserire un registro
|24.7|	Abbreviazioni
|24.8|	Scrittura di caratteri speciali
|24.9|	I digrafici
|24.10|	Comandi in Normal mode

  Capitolo seguente: |usr_25.txt|  Lavorare con testo formattato
Capitolo precedente: |usr_23.txt|  Modifica di altri file
	     Indice: |usr_toc.txt|

==============================================================================
*24.1*	Effettuare correzioni

Del tasto <BS> abbiamo gi parlato.  Cancella i caratteri immediatamente
precedenti il cursore.  Il tasto <Del> fa la stessa cosa per i caratteri posti
sotto (dopo) il cursore.
   Avendo scritto qualche parola sbagliata potete usare CTRL-W:

	The horse had fallen to the sky ~
				       CTRL-W
	The horse had fallen to the ~

Se aveste sbagliato un'intera linea e voleste ripartire da capo, potreste
usare CTRL-U per cancellarla.  Ci conserverebbe il testo posto dopo il
cursore e l'indentazione.  Solo il testo dal suo inizio alla posizione del
cursore verrebbe cancellato.  Con il cursore sulla "f" di "fallen" nella linea
che segue premendo CTRL-U avverebbe quanto segue:

	The horse had fallen to the ~
		      CTRL-U
	fallen to the ~

Se trovaste un errore poche parole indietro bisognerebbe spostarvi il cursore
per correggerlo.  Ad esempio, avendo scritto cos:

	The horse had follen to the ground ~

Volendo cambiare "follen" in "fallen".  Con il cursore a fine linea potreste
scrivere cos per correggerlo: >

					<Esc>4blraA

<	Uscire dall'Insert mode		<Esc>
	indietro di quattro parole	     4b
	vai sulla "o"			       l
	sostituiscila con una "a"		ra
	riavvia l'Insert mode			  A

Un altro modo di farlo: >

		<C-Left><C-Left><C-Left><C-Left><Right><Del>a<End>

<	indietro di quattro parole	     <C-Left><C-Left><C-Left><C-Left>
	vai sopra la "o"			<Right>
	cancella la "o"				       <Del>
	inserisci una "a"				    a
	vai a fine linea				     <End>

Questo impiega i tasti speciali per muoversi attorno, restando nell'Insert
mode.  Ci assomiglia a quanto fareste con un editor non modale.  E' pi
facile da ricordare, ma richiede pi tempo (dovreste spostarvi tra lettere 
e tasti cursore ed il tasto <End> risulta difficile da premere senza guardare 
la tastiera).
   Questi tasti speciali sono molto utili per scrivere senza lasciare l'Insert
mode.  Allora il fatto di dover scrivere di pi non costituisce un problema.
   Una vista d'assieme dei tasti che potete usare nell'Insert mode:

	<C-Home>	va all'inizio del file
	<PageUp>	si sposta di uno schermo verso l'alto
	<Home>		va all'inizio della linea
	<S-Left>	si sposta di una parola a sinistra
	<C-Left>	si sposta di una parola a sinistra
	<S-Right>	si sposta di una parola a destra
	<C-Right>	si sposta di una parola a destra
	<End>		va alla fine della linea
	<PageDown>	si sposta di uno schermo verso il basso
	<C-End>		va alla fine del file

Ce ne sono alcuni in pi, vedere |ins-special-special|.

==============================================================================
*24.2*	Evidenziare le corrispondenze

Quando scrivete un ) potrebbe esservi utile vedere a quale ( corrisponda.  Per
ottenere che Vim faccia ci potete usare questo comando: >

	:set showmatch

Quando scrivete un testo come "(example)", appena scritto ) Vim sposter per
un attimo il cursore sul corrispondente (, rimarr l per mezzo secondo, poi
torner indietro dove stavate scrivendo.
   Se non ci fosse il corrispondente (, Vim emetterebbe un suono.  Cos
sapreste di aver dimenticato il ( da qualche parte, o scritto un ) di troppo.
   La corrispondenza viene cercata anche per le coppie [] e {}.  Non dovete
aspettare per scrivere la prossima lettera, appena Vim trova la corrispondenza
il cursore torner indietro e l'inserzione continuer come prima.
   Potete modificare questo tempo di verifica con l'opzione 'matchtime'.  Ad
esempio, per far si che Vim attenda per un secondo e mezzo: >

	:set matchtime=15

Il tempo va specificato in decimi di secondo.

==============================================================================
*24.3*	Completamento

Vim pu completare automaticamente le parole durante l'inserzione.  Scrivete
la prima parte di una parola, premete CTRL-P, e Vim provveder al resto.
   Immaginate, ad esempio, di stare scrivendo un programma in C e di voler
scrivere:

	total = ch_array[0] + ch_array[1] + ch_array[2]; ~

Inizierete scrivendo quanto segue:

	total = ch_array[0] + ch_ ~

Ora dite a Vim di completare la parola usando il comando CTRL-P.
Vim cercher una parola che inizi con ci che sta davanti al cursore.  In
questo caso, si tratta di "ch_", che corrisponde con la parola ch_array.
Cos se battete CTRL-P otterrete:

	total = ch_array[0] + ch_array ~

Dopo un minimo sforzo di battitura otterrete (terminando con uno spazio):

	total = ch_array[0] + ch_array[1] +  ~

Se adesso battete CTRL-P Vim cercher ancora una parola che completi quella
prima del cursore.  Poich non c' nulla davanti al cursore, allora trover la
prima parola cercando all'indietro, che  "ch_array".  Battere ancora CTRL-P
fornir la prossima parola corrispondente, in questo caso "total".  Un terzo
CTRL-P cercher ancora all'indietro.  Se non vi fosse altro,  l'editor, avendo
terminato le parole, tornerebbe al testo originale, che  nullo.  Un quarto
CTRL-P far ripartire l'editor con "ch_array".

Per cercare in avanti usate CTRL-N.  Quando la ricerca avr raggiunto la fine
del file, CTRL-N e CTRL-P troveranno le stesse corrispondenze, ma in sequenza
diversa.  Significato: CTRL-N vuol dire Next-match e CTRL-P significa
Previous-match.

Vim tenter di tutto per trovare parole da completare.  Di default, cercher
nei seguenti posti:

	1. File attuale
	2. File in altre finestre
	3. Altri file caricati (buffer nascosti)
	4. File non caricati (buffers inattivi)
	5. Tag files
	6. Tutti i file #included dal file corrente


OPZIONI

Potete personalizzare l'ordine di ricerca con l'opzione 'complete'.

Uso dell'opzione 'ignorecase'.  Quando viene impostata, vengono ignorate le
differenze tra maiuscole e minuscole nella ricerca delle corrispondenze.

Un'opzione speciale per il completamento  'infercase'.  Risulta utile per
trovare corrispondenze ignorando la distinzione tra maiuscole e minuscole
('ignorecase' deve essere impostata) ma utilizzando l'attributo della parola
precedentemente battuta.  Cos, se scriveste "For", Vim troverebbe la
corrispondenza in "fortunately", il risultato sar "Fortunately".


COMPLETAMENTO DI ELEMENTI SPECIFICI

Se sapete cosa state cercando, potete usare questi comandi per completare
a mezzo di un certo tipo di elementi:

	CTRL-X CTRL-F		nomi di file
	CTRL-X CTRL-L		talune linee
	CTRL-X CTRL-D		definizioni di macro (anche in file inclusi)
	CTRL-X CTRL-I		file corrente ed inclusi
	CTRL-X CTRL-K		parole da un dizionario
	CTRL-X CTRL-T		parole da un thesaurus
	CTRL-X CTRL-]		marcature
	CTRL-X CTRL-V		linea di comando di Vim

Dopo ciascuno di essi CTRL-N pu essere usato per trovare la prossima
corrispondenza, CTRL-P per quella precedente.
   Una maggiore informazione per ciascuno di questi comandi qui:
|ins-completion|.


COMPLETAMENTO DEI NOMI DEI FILE

Prendiamo ad esempio CTRL-X CTRL-F.  Serve a trovare nomi di file.  Esamina la
directory corrente e mostra ciascun file che corrisponda con la parola davanti
al cursore.
   Ad esempio, immaginate di avere i seguenti file nella directory corrente:

	main.c  sub_count.c  sub_done.c  sub_exit.c

Entrate in Insert mode ed iniziate a scrivere:

	The exit code is in the file sub ~

A questo punto digitate il comando CTRL-X CTRL-F.  Vim completa ora la parola
"sub" osservando i file nella directory attuale.  La prima corrispondenza 
sub_count.c.  Ci non  quello che volevate, cos provate il prossimo file con
CTRL-N.  La corrispondenza  sub_done.c.  Scrivendo ancora una volta CTRL-N
vi dar sub_exit.c.  Il risultato:

	The exit code is in the file sub_exit.c ~

Se il nome del file iniziasse con / (Unix) o C:\ (MS-Windows) potreste trovare
tutti i file del file system.  Ad esempio, digitate "/u" e CTRL-X CTRL-F.
Ci trover corrispondenza in "/usr" (ci in Unix):

	the file is found in /usr/ ~

Se adesso premete CTRL-N tornate a "/u".  Invece, per accettare "/usr/" ed
andare ad una directory di livello pi basso, usate ancora CTRL-X CTRL-F:

	the file is found in /usr/X11R6/ ~

I risultati dipenderanno da cosa si trova nel vostro file system, ovviamente.
Le corrispondenze vengono ordinate alfabeticamente.

==============================================================================

*24.4*	Ripetizione di un inserimento

Se premete CTRL-A, l'editor inserisce il testo scritto l'ultima volta che vi
trovavate nell'Insert mode.
   Ad esempio, supponete di avere un file che inizi con i seguenti:

	"file.h" ~
	/* Main program begins */ ~

Modificate questo file inserendo "#include " all'inizio della prima linea:

	#include "file.h" ~
	/* Main program begins */ ~

Scendete all'inizio della linea seguente con il comando "j^".  Inserite una
nuova linea "#include".  Cos scrivete: >

	i CTRL-A

Ne deriver quanto segue:

	#include "file.h" ~
	#include /* Main program begins */ ~

E' stato incluso "#include " perch CTRL-A inserisce il testo dell'inserimento
precedente.  Ora scrivete "main.h"<Enter>  per completare la linea:

	#include "file.h" ~
	#include "main.h" ~
	/* Main program begins */ ~

Il comando CTRL-@ produce un CTRL-A ed esce dall'Insert mode.  E' un modo
veloce per fare lo stesso inserimento un'altra volta.

==============================================================================
*24.5*	Copiare da un'altra linea

Il comando CTRL-Y inserisce il carattere prima del cursore.  Risulta utile
dovendo duplicare una linea precedente.  Ad esempio, posta questa linea di
codice C:

	b_array[i]->s_next = a_array[i]->s_next; ~

Adesso dovete scrivere la stessa linea, ma con "s_prev" invece di "s_next".
Andate a capo e premete CTRL-Y 14 volte, sino a quando giungerete alla "n"
di "next":

	b_array[i]->s_next = a_array[i]->s_next; ~
	b_array[i]->s_ ~

Adesso scrivete "prev":

	b_array[i]->s_next = a_array[i]->s_next; ~
	b_array[i]->s_prev ~

Continuate premendo CTRL-Y sino al prossimo "next":

	b_array[i]->s_next = a_array[i]->s_next;~
	b_array[i]->s_prev = a_array[i]->s_ ~

Adesso scrivete "prev;" per terminare.

Il comando CTRL-E fa come CTRL-Y ad eccezione del fatto che inserisce il
carattere dopo il cursore.

==============================================================================
*24.6*	Inserire un registro

Il comando CTRL-R {register} inserisce i contenuti del registro.  Ci risulta
utile per evitare di dover scrivere una parola lunga.  Ad esempio, se volete
scrivere:

	r = VeryLongFunction(a) + VeryLongFunction(b) + VeryLongFunction(c) ~

Il nome della funzione  definito entro un file diverso.  Aprite questo file
e muovete il cursore all'inizio del nome della funzione, copiatelo ora nel
registro v: >

	"vyiw

"v  la specificazione del registro, "yiw" sta per yank-inner-word.  Ora
aprite il file in cui volete inserire la nuova linea e premete le prime
lettere:

	r = ~

Adesso, con CTRL-R v verr inserito il nome della funzione:

	r = VeryLongFunction ~

Continuate a scrivere caratteri entro il nome della funzione ed usate ancora
due volte CTRL-R v.
   Potreste fare lo stesso per il completamento.  Usare un registro  utile
se ci fossero troppo parole inizianti con lo stesso carattere.

Se il registro contenesse caratteri come <BS> od altri caratteri speciali,
essi verrebbero interpretati come se fossero stati battuti dalla tastiera.  Se
non volete che ci accada (volete che venga inserito davvero nel testo il
<BS>), usate il comando CTRL-R CTRL-R {register}.

==============================================================================
*24.7*	Abbreviazioni

Un'abbreviazione  una parola breve che prende il posto di una lunga.  Ad
esempio, "ad" sta per "advertisement".  Vim permette di scrivere
un'abbreviazione e la espander automaticamente.
   Per dire a Vim di espandere "ad" in "advertisement" ogni volta che venga
inserita, usate il comando seguente: >

	:iabbrev ad advertisement

Adesso, scrivendo "ad", tutta la parola "advertisement" verr inserita nel
testo.  Lo otterrete scrivendo un carattere che non fa parte della parola, ad
esempio uno spazio:

	What Is Entered		What You See
	I saw the a		I saw the a ~
	I saw the ad		I saw the ad ~
	I saw the ad<Space>	I saw the advertisement<Space> ~

L'espansione non avviene scrivendo solo "ad".  Ci vi permette di scrivere
una parola come "add", che non deve essere espansa.  Solo le parole intere
vengono prese in esame per le abbreviazioni.


ABBREVIARE DIVERSE PAROLE

E' possibile definire un'abbreviazione che si sviluppi in diverse parole.  Ad
esempio, per definire "JB" come "Jack Benny", usate il seguente comando: >

	:iabbrev JB Jack Benny

Come programmatore, uso due abbreviazioni abbastanza insolite: >

	:iabbrev #b /****************************************
	:iabbrev #e <Space>****************************************/

Servono per generare "boxed comments".  Il commento parte con #b, che disegna
la linea sopra.  Poi si scrive il testo del commento e si usa #e per disegnare
la linea sotto.
   Attenzione al fatto che l'abbreviazione #e inizia con uno spazio.  In altre
parole, i primi due caratteri sono spazio-asterisco.  Di solito Vim ignora gli
spazi tra l'abbreviazione e l'espansione.  Per evitare questo problema,
sillabo "space" come sette caratteri: <, S, p, a, c, e, >.

	Note:
	":iabbrev"  una parola lunga da scrivere.  ":iab" va meglio.
	Ci significa abbreviare il comando abbreviate!


CORREZIONE DEGLI ERRORI DI SCRITTURA

E' comunissimo ripetere spesso lo stesso errore di battitura.  Ad esempio,
scrivere "teh" invece di "the".  Potete rimediare con un'abbreviazione: >

	:abbreviate teh the

Potete aggiungerne un'intera lista.  Aggiungetene una ogni volta che scoprite
un errore comune.


ELENCARE LE ABBREVIAZIONI

Il comando ":abbreviate" elenca le abbreviazioni:

	:abbreviate
	i  #e		  ****************************************/
	i  #b		 /****************************************
	i  JB		 Jack Benny
	i  ad		 advertisement
	!  teh		 the

La lettera "i" nella prima colonna indica l'Insert mode.  Queste abbreviazioni
sono attive soltanto nell'Insert mode.  Altri possibili caratteri sono:

	c	Command-line mode			:cabbrev
	!	Entrambi, Insert e Command-line mode	:abbreviate

Poich le abbreviazioni non sono utili spesso nel Command-line mode, userete
preferibilmente il comando ":iabbrev".  Ci eviter, ad esempio, che "ad"
venga espanso quando state scrivendo un comando come: >

	:edit ad


CANCELLARE LE ABBREVIAZIONI

Per eliminare un'abbreviazione usate il comando ":unabbreviate".  Supponete
di avere la seguente abbreviazione: >

	:abbreviate @f fresh

La potete rimuovere con il seguente comando: >

	:unabbreviate @f

Sino a quando non farete ci @f verr espanso in "fresh".  Non
preoccupatevene, Vim lo capisce comunque (eccetto se aveste un'abbreviazione
per "fresh", ma essa fosse molto differente).
   Per eliminare tutte le abbreviazioni: >

	:abclear

":unabbreviate" ed ":abclear" sono delle varianti per l'Insert mode
("iunabbeviate ed ":iabclear") e per il Command-line mode (":cunabbreviate" e
"cabclear").


RIMAPPATURA DELLE ABBREVIAZIONI

C' una cosa da tenere in considerazione quando definite un'abbreviazione:
La stringa risultante non pu essere mappata. Ad esempio: >

	:abbreviate @a adder
	:imap dd disk-door

Se adesso scriveste @a, otterreste "adisk-doorer".  Non  quanto volevate.
Per evitarlo, impiegate il comando ":noreabbrev".  Fa come ":abbreviate", ma
evita che la stringa risultante venga usata per la mappatura: >

	:noreabbrev @a adder

Fortunatamente  raro che il risultato di un'abbreviazione venga mappato.

==============================================================================
*24.8*	Inserimento di caratteri speciali

Il comando CTRL-V serve ad inserire letteralmente il prossimo carattere.  In
altre parole, qualsiasi significato speciale il carattere abbia verr
ignorato.  Ad esempio: >

	CTRL-V <Esc>

Inserisce un carattere di escape.  Cos non dovrete lasciare l'Insert mode.
(Non dovete mettere lo spazio dopo CTRL-V,  solo per renderlo pi leggibile).

	Note:
	In MS-Windows CTRL-V viene usato per incollare del testo.  Usate
	CTRL-Q invece di CTRL-V.  Su Unix, d'altronde, CTRL-Q non funziona su
	alcuni terminali perch ha un significato speciale.

Potete anche usare il comando CTRL-V {digits} per inserire un carattere
contenente numeri decimali {digits}.  Ad esempio, il carattere numero 127 
il carattere <Del> (ma non necessariamente il tasto <Del>!).  Per inserire
<Del> scrivete: >

	CTRL-V 127

In questo modo potete inserire caratteri in numero superiore a 255.  Quando
scrivete meno di due cifre, un carattere non cifra dovr ultimare il
comando.  Per evitare di scrivere il carattere non cifra anteponete uno o
due zeri per fare tre cifre.
   Tutti i seguenti comandi inseriscono un <Tab> seguito da un punto:

	CTRL-V 9.
	CTRL-V 09.
	CTRL-V 009.

Per inserire un carattere in esadecimale, usate una "x" dopo il CTRL-V: >

	CTRL-V x7f

Ci va anche oltre i 255 caratteri (CTRL-V xff).  Potete usare "o" per
scrivere un carattere come numero ottale ed altri due metodi vi consentiranno
di scrivere numeri a 16 o 32 bit (e.g., per un carattere Unicode): >

	CTRL-V o123
	CTRL-V u1234
	CTRL-V U12345678

==============================================================================
*24.9*	Digrafia

Taluni caratteri non esistono sulla tastiera.  Ad esempio, il carattere di
copyright ().  Per scrivere questi caratteri con Vim, utilizzerete la
digrafia, ove due caratteri ne rappresentano uno.  Per inserire un , ad
esempio, premerete tre tasti: >

	CTRL-K Co

Per sapere quali digrafie siano disponibili usate il seguente comando: >

	:digraphs

Vim far vedere la tabella digrafica.  Eccone tre linee:

  AC ~_ 159  NS |  160  !I   161  Ct   162  Pd   163  Cu   164  Ye   165 ~
  BB   166  SE   167  ':   168  Co   169  -a   170  <<   171  NO   172 ~
  --   173  Rg   174  'm   175  DG   176  +-   177  2S   178  3S   179 ~

Ci mostra, per esempio, che il carattere digrafico che otterrete con CTRL-K
Pd  il carattere ().  Si tratta del carattere numero 163 (decimale).
   Pd  l'abbreviazione di Pound.  I pi tanti digrafici sono fatti in modo da
darvi un suggerimento circa il carattere che produrranno.  Guardando la lista
ne capirete la logica.
   Si pu cambiare il primo ed il secondo carattere, se non esiste un altro
digrafico con la stessa combinazione.  Cos funzioner anche CTRL-K dP.  Se
non vi fosse un digrafico per "dP" Vim cercher anche un digrafico per "Pd".

	Note:
	I caratteri digrafici dipendono dal character set che Vim pensa
	usiate.  Su MS-DOS  diverso che su MS-Windows.  Impiegate spesso
	":digraphs" per trovare quali caratteri digrafici siano attualmente
	disponibili.

Potete definire i vostri digrafici.  Esempio: >

	:digraph a" 

Definisce che CTRL-K a" inserisca un carattere .  Potete anche specificare il
carattere con un numero decimale.  Ci definisce il medesimo digrafico: >

	:digraph a" 228

Troverete ulteriori informazioni circa i caratteri digrafici in: |digraphs|
   Un altro modo per inserire caratteri speciali  con una keymap.  Di pi
sull'argomento: |45.5|

==============================================================================
*24.10*	Comandi in Normal mode

L'Insert mode offre un numero limitato di comandi.  In Normal mode 
disponibile assai di pi.  Se ne voleste usare uno, normalmente abbandonereste
l'Insert mode con <Esc>, eseguireste il comando in Normal mode, e rientrereste
nell'Insert mode con "i" od "a".
   C' una via pi rapida.  Con CTRL-O {command} potete eseguire tutti i
comandi Normal mode restando nell'Insert mode.  Ad esempio, per cancellare
dalla posizione del cursore alla fine della linea: >

	CTRL-O D

Potete eseguire un solo comando Normal mode in questo modo.  Ma potete
specificare un registro od un conto.  Un esempio pi complicato: >

	CTRL-O "g3dw

Cancella a partire dalla terza parola entro il registro g.

==============================================================================

Capitolo seguente: |usr_25.txt|  Lavorare con testo formattato

Copyright: vedere |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:

Segnalare refusi a Bartolomeo Ravera - E-mail: barrav at libero.it
