*usr_20.txt*	Per Vim version 6.2.  Ultima modifica: 2003 Apr 30

		     VIM USER MANUAL - di Bram Moolenaar
	 Traduzione di questo capitolo: Fabio Teatini e Roberta Fedeli

	  Immissione rapida dei comandi sulla linea di comando


Vim ha alcune funzionalit generali che rendono pi semplice l'immissione di
comandi. I comandi possono essere abbreviati, modificati e ripetuti.
   Il meccanismo del completamento  disponibile quasi sempre.

|20.1|	Elaborazione della linea di comando
|20.2|	Abbreviazioni dei comandi
|20.3|	Completamento automatico dei comandi
|20.4|	Cronologia dei comandi
|20.5|	Finestra della linea di comando

  Capitolo seguente: |usr_21.txt|  Andarsene e ritornare
Capitolo precedente: |usr_12.txt|  Trucchi ingegnosi
	     Indice: |usr_toc.txt|

==============================================================================
*20.1*	Elaborazione della linea di comando

Quando, per immettere un comando, digitate il carattere dei due-punti (:) o
effettuate la ricerca di una stringa con / o ?, Vim pone il cursore in fondo
allo schermo; questa  la posizione in cui inserire i comandi o le chiavi di
ricerca, ed  chiamata Command line.  Anche quando viene usata per inserire un
comando di ricerca.

Il modo pi semplice per modificare il comando digitato  quello di premere il
tasto <BS>, cos da cancellare il carattere a sinistra del cursore. Per
cancellare un altro carattere precedentemente digitato, spostate il cursore
coi tasti-freccia.
   Per esempio, immaginate di aver gi digitato il comando:

	:s/col/pig/

Se ora, prima di premere <Invio>, voi voleste che "col" fosse trasformato in
"cow", digitate <Left> cinque volte. Il cursore, ora, si trova proprio dopo
"col". Per effettuare la correzione digitate "<BS> e "w":

	:s/cow/pig/

Ora potete premere <Enter> direttamente, senza spostare il cursore alla fine
della linea prima di eseguire il comando.

Ecco i tasti utilizzati pi spesso per spostarsi entro la riga di comando:

	<Left>			un carattere a sinistra
	<Right>			un carattere a destra
	<S-Left> o <C-Left>	una parola a sinistra
	<S-Right> o <C-Right>	una parola a destra
	CTRL-B o <Home>		all'inizio della linea di comando
	CTRL-E o <End>		alla fine della linea di comando

	Note:
	<S-Left> (tasto-freccia a sinistra con tasto delle Maiuscole premuto)
        e <C-Left> (tasto-freccia a sinistra con tasto Control premuto) non
	funzionano su tutte le tastiere. Ci vale anche per le altre
	combinazioni ottenute coi tasti Maiuscola e Control.

Per muovere il cursore potete utilizzare anche il mouse.

CANCELLAZIONE

Come gi detto, <BS> cancella il carattere precedente al cursore. Per
cancellare un'intera parola si usa CTRL-W.

	/the fine pig ~

		     CTRL-W

	/the fine ~

CTRL-U cancella tutto il testo, permettendo di ricominciare tutto da capo.

SOVRASCRITTURA

Esistono due possibilit per l'inserimento di nuovi caratteri: la prima
permette di inserire nuovi caratteri senza cancellare quelli esistenti; la
seconda fa sovrascrivere i nuovi caratteri su quelli esistenti. Il tasto
<Insert> permette di passare dalla prima modalit alla seconda. Scrivete
questo testo:

	/the fine pig ~

Ora muovete il cursore all'inizio della parola "fine" premendo <S-Left> due
volte (o <Left> otto volte, se <S-Left> non funziona). Quindi, premete
<Insert> per passare alla funzione di sovrascrittura e digitate "great":

	/the greatpig ~

Oops,  andato perso lo spazio. In questo caso non usate <BS>, perch
cancellereste la "t" (diversamente dalla modalit di Sovrascrittura). Invece,
premete <Insert> per passare dalla sovrascrittura all'inserimento, e digitate
lo spazio:

	/the great pig ~


ANNULLAMENTO

Quando volete annullare un comando : oppure / in fase di digitazione, premete
CTRL-C o <Esc>.

	Note:
	<Esc>  il tasto universalmente usato come uscita. Sfortunatamente, 
	nel buon vecchio Vi la digitazione di <Esc> in una riga di comando
	eseguiva il comando! Poich ci potrebbe essere considerato un bug,
	Vim usa <Esc> per cancellare il comando.
	Ma usando l'opzione 'cpoptions' si pu ottenere la compatibilit con
	VI. <Esc> funziona in modalit compatibile con Vi anche quando si usa
	un mapping (scritto per Vi).
	In definitiva, il metodo che funziona sempre  quello del CTRL-C.

Se siete all'inizio della linea di comando, premendo <BS> annullererete il
comando.  equivalente a cancellare i caratteri ":" o "/" posti all'inizio
della riga.

==============================================================================
*20.2*	Scorciatoie per la linea di comando

Alcuni comandi ":" sono veramente lunghi. Si  gi detto che ":substitute"
pu essere abbreviato come ":s". Questa  una regola generale: tutti i
comandi ":" possono essere abbreviati.

Di quanto pu essere abbreviato un comando? Ci sono 26 lettere, ma molti pi
comandi. Per esempio, anche ":set" inizia con ":s", ma ":s" non avvia un
comando ":set". Invece ":set" pu essere abbreviato con ":se".
   Quando due comandi hanno la stessa forma abbreviata, in realt essa
funzioner solo per uno di essi. Non c' un metodo logico per individuarlo: 
qualcosa che va imparato. Nei file di help viene indicata la forma abbreviata
pi corta che funziona. Per esempio: >
 
	:s[ubstitute]

Significa che la forma pi corta per ":substitute"  ":s". I caratteri
successivi sono opzionali. Quindi funzionano anche ":su" e ":sub".

In questo manuale dell'utente si user sia il nome intero del comando, sia una
forma abbreviata comunque intelligibile. Per esempio, ":function" potrebbe
essere abbreviato in ":fu", ma poich molte persone non capirebbero cosa
indica tale abbreviazione, useremo ":fun" (Vim non ha un comando ":funny",
altrimenti anche ":fun" potrebbere ingenerare confusione).

Per quel che riguarda gli script di Vim, vi raccomando di scrivere il nome
intero dei comandi. Ci permette di interpretarli pi facilmente quando si
effettuano modifiche successive. Si pu fare eccezione per alcuni comandi
usati molto spesso, come ":w" (":write") e ":r" (":read").
   Una forma particolarmente ambigua  ":end", che si adatta a ":endif",
":endwhile" e ":endfunction". Perci, usate sempre il nome intero.


NOMI BREVI DELLE OPZIONI

Nel manuale dell'utente sono illustrate le opzioni con i nomi lunghi.
Per molte opzioni si possono usare anche nomi brevi. Contrariamente a quel che
avviene per i comandi ":", c' un solo nome breve funzionante. Ad esempio, il
nome breve per 'autoindent'  'ai'. Perci, i due comandi seguenti fanno lo
stesso lavoro: >

	:set autoindent
	:set ai

Un elenco dei nomi dei comandi (lunghi e brevi) si trova qui: |option-list|.

==============================================================================
*20.3*	Completamento della linea di comando

Questa funzionalit di Vim  una di quelle che, da sola, giustifica l'adozione
di Vim da parte degli utenti di Vi. Una volta che l'avrete usata, non potrete
pi farne a meno.

Supponete di avere una directory contenente questi file:

	info.txt
	intro.txt
	corpodeltesto.txt

Per elaborare l'ultimo file, potete usare il comando: >

	:edit corpodeltesto.txt


e noterete che  facile sbagliarne la digitazione.  Un modo assai pi rapido
:

	:edit c<Tab>

e otterrete lo stesso effetto di prima. Che  successo? Il tasto <Tab>
effettua il completamento della parola che precede il cursore. Nel nostro
caso: "b".
Vim cerca nella directory e trova soltanto un file il cui nome inizia per "b";
non essendoci ambiguit, Vim completa al posto vostro il nome del file e lo
apre.

Ora digitate: >

	:edit i<Tab>

Vim, ora, emetter un segnale acustico e presenter il comando: >

	:edit info.txt

Il segnale acustico significa che Vim ha trovato pi di una corrispondenza.
   Per questo motivo aprir il primo file (in ordine alfabetico) che
corrisponde.
   Se premete ancora <Tab>, otterrete: >

	:edit intro.txt

Cos, se il primo <Tab> non evidenzia il file che stavate cercando,
premetelo ancora. Se esistono pi nomi corrispondenti, li vedrete tutti, uno
per uno.
   Se premete <Tab> sull'ultimo nome corrispondente, tornerete a quello che
avevate digitato inizialmente: >

	:edit i

Allora si ricomincia daccapo.  Cos Vim effettua un ciclo attraverso l'elenco
delle corrispondenze.
Con CTRL-P potrete scorrere la lista nel verso opposto:

	      <------------------- <Tab> -------------------------+
								  |
		  <Tab> -->		       <Tab> -->
	:edit i		      :edit info.txt		   :edit intro.txt
		  <-- CTRL-P		       <-- CTRL-P
	   |
	   +---------------------- CTRL-P ------------------------>


CONTESTO

Quando digitate ":set i" invece che ":edit i" e premete <Tab>, si ottiene: >

	:set icon

Ehi! Perch non compare ":set info.txt"?  Ci avviene perch il completamento
di Vim  sensibile al contesto. Il tipo di parole cercate da Vim dipende dal
comando iniziale. Vim sa che subito dopo un comando ":set" non potete usare un
nome di file;  consentito solo un nome d'opzione.
   Anche qui, se digitate pi volte il tasto <Tab>, Vim effettuer una
scansione ciclica attraverso tutti i valori corrispondenti.
Ce ne sono parecchi, per cui  meglio digitare altri caratteri: >

	:set isk<Tab>

Diventa: >

	:set iskeyword

Ora digitate "=" e premete <Tab>: >

	:set iskeyword=@,48-57,_,192-255

Ci che accade  che Vim inserisce il vecchio valore dell'opzione.  Adesso
potete modificarla.
   L'uso di <Tab> porta al completamento con ci che Vim si aspetta debba
comparire nella posizione corrispondente. Provate semplicemente a vedere come
funziona. In certe situazioni otterrete qualcosa di diverso da quanto
desiderato. Ci  dovuto al fatto che Vim non conosce i vostri desideri;
oppure il completamento potrebbe non essere stato implementato per quella
determinata situazione. In quel caso otterrete il semplice inserimento di un
<Tab> (visualizzato come ^I).


ELENCO DI CORRISPONDENZE

Quando esistono molte corrispondenze, vorrete vederle tutte insieme. Potete
farlo premendo CTRL-D. Per esempio, premendo CTRL-D dopo aver digitato >

	:set is

si ottiene: >

	:set is
	incsearch  isfname    isident    iskeyword  isprint
	:set is

Vim elenca le corrispondenze e ritorna al testo da voi digitato, cos che
possiate passare in rassegna l'elenco e scegliere ci che volete. Se non
ci sono corrispondenze, potete usare <BS> per correggere la parola. Se le
corrispondenze sono molte, prima di premere <Tab> digitate qualche altro
carattere di ci che vi interessa.
   Se ci avete fatto caso, noterete che "incsearch" non inizia con "is".
In questo caso, "is"  il nome breve di "incsearch" (molte opzioni hanno
nomi sia brevi che lunghi). Vim  sufficientemente scaltro da sapere che
voi potreste voler espandere il nome breve dell'opzione nel suo nome lungo.


C'E' DI PIU'

Il comando CTRL-L completa la parola trasformandola nella stringa pi lunga
e non ambigua. Se digitate ":edit i" ed esistono i file "info.txt" e
"info_backup.txt" otterrete ":edit info".

Per modificare il meccanismo di completamento, potete usare l'opzione
'wildmode'.
   L'opzione 'wildmenu' permette di produrre un elenco corrispondenze in forma
di menu.
   L'opzione 'suffixes' permette di precisare i file meno importanti che
possono essere relegati alla fine dell'elenco.
   L'opzione 'wildignore' permette di indicare i file da non elencare affatto.

Altre informazioni in merito si trovano qui: |cmdline-completion|

==============================================================================
*20.4*	Cronologia dei comandi

La cronologia dei comandi (o history)  stata brevemente citata nel capitolo
3.  La cosa pi semplice a riguardo  l'utilizzo del tasto <Up> per richiamare
i precedenti comandi; il tasto <Down> permette di scorrere i comandi
in avanti.

In realt di cronologie ne esistono quattro. Qui tratteremo quella dei comandi
":", e quelle dei comandi di ricerca "/" e "?". I comandi "/" e "?"
condividono la stessa cronologia, essendo entrambi comandi di ricerca. Le
altre due cronologie sono quelle delle espressioni e delle linee di input per
la funzione input().
|cmdline-history|

Supponiamo di aver immesso un comando ":set", di aver digitato pi di dieci
comandi ":" e poi di voler ripetere il comando ":set" di prima. Potreste
premere ":" e dieci volte <Up>, ma c' un modo pi rapido: >

	:se<Up>

Vim torner al precedente comando che inizia con "se". Avete buone probabilit
che si tratti del comando ":set" che cercavate. Se non altro, vi sar
risparmiato di premere tante volte il tasto <Up> (a meno che non abbiate dato
solo comandi di tipo ":set").

Il tasto <Up> user il testo digitato fino a quel momento e lo confronter con
le linee presenti nella cronologia. Solo le linee corrispondenti saranno
usate.
   Se non trovate le linee che cercavate, usate <Down> e tornerete a quelle
digitate inizialmente, per modificarle. Oppure usate CTRL-U per reiniziare
tutto da capo.

Per vedere tutte le linee della cronologia: >

	:history

Questa  la cronologia dei comandi ":". La cronologia dei comandi di ricerca
viene mostrata con il comando: >

	:history /

CTRL-P ha lo stesso effetto di <Up>, tranne per il fatto che non importa quel
che avete gi scritto. Lo stesso vale per CTRL-N e <Down>. CTRL-P sta per
"precedente", CTRL-N per "next" (successivo).

==============================================================================
*20.5*	Finestra della linea di comando

La digitazione del testo nella linea di comando funziona in modo diverso dalla
digitazione in Insert mode: a molti comandi non  permesso di modificare il
testo. Per la maggior parte dei programmi questo non  un problema, ma a volte
vi troverete a digitare comandi complessi. E' in questo caso che torna utile
la finestra della linea di comando.

La finestra della linea di comando si apre con questo comando: >

	q:

Con esso, Vim apre una (piccola) finestra in basso, che contiene la cronologia
della linea di comando e una linea vuota in fondo:

	+-------------------------------------+
	|other window			      |
	|~				      |
	|file.txt=============================|
	|:e c				      |
	|:e config.h.in			      |
	|:set path=.,/usr/include,,	      |
	|:set iskeyword=@,48-57,_,192-255     |
	|:set is			      |
	|:q				      |
	|:				      |
	|command-line=========================|
	|				      |
	+-------------------------------------+

Ora siete in Normal mode. Qui potete usare i tasti "hjkl" per spostarvi col
cursore. Per esempio, spostatevi verso l'alto con "5k" fino alla linea con
":e config.h.in". Digitate "$h" per muovervi fino alla "i" di "in" e digitate
"cwout". Ora la linea  stata modificata in:

	:e config.h.out ~

Premete <Enter> e questo comando verr eseguito, dopodich la finestra della
linea di comando si chiuder da s.
   Il comando <Enter> eseguir la linea su cui si trova il cursore, senza
badare se Vim si trova in Insert mode o Normal mode.
   Le modifiche, effettuate in finestra della linea di comando, saranno
perdute; non saranno reperibili nella cronologia dei comandi, tranne per il
comando da voi eseguito (ci vale per tutti i comandi mandati in esecuzione).

La finestra della linea di comando  utilissima per ottenere una panoramica
della cronologia dei comandi, cercare nei comandi qualcosa di simile a quello
che serve, fare le dovute modifiche ed eseguire il tutto. Per trovare quel che
si vuole si pu utilizzare esplicitamente un comando di ricerca.
   Nell'esempio precedente avreste potuto usare il comando di ricerca
"?config" per trovare il comando pi recente contenente "config".  C' un che
di strano nell'usare un comando di ricerca per effettuare ricerce nella
finestra dei comandi.
   Quando digitate questo comando di ricerca non potrete aprire un'altra
finestra della linea di comando, perch ne viene supportata solo una.

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

Capitolo seguente: |usr_21.txt|  Andarsene e ritornare

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

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