*usr_42.txt*	Per Vim version 6.2.  Ultima modifica: 2002 Ott 08

		     VIM USER MANUAL - by Bram Moolenaar
		  Traduzione di questo capitolo: Luca Ferraro

		         Aggiungere nuovi men


Da ora sapete che Vim  molto flessibile.  Ci include i menu usati nella GUI.
Potete definire voi stessi le opzioni del vostro menu per rendere alcuni
comandi pi facilmente accessibili.  Ci soltanto per i felici utenti del
mouse!

|42.1|	Introduzione
|42.2|	Comandi dei men
|42.3|	Vario
|42.4|	Toolbar ed i men popup

  Capitolo seguente: |usr_43.txt|  Utilizzo dei tipi di file
Capitolo precedente: |usr_41.txt|  Preparare uno script Vim
	     Indice: |usr_toc.txt|

==============================================================================
*42.1*	Introduzione

I men che Vim usa sono definiti nel file "$VIMRUNTIME/menu.vim".  Se volete
scrivere i vostri menu personali, potreste prima dare un'occhiata a questo
file.
   Per definire un elemento del men, utilizzate il comando ":menu". La forma
fondamentale di questo comando  molto semplice: >

	:menu {elemento-men} {comando}

Il {elemento-men} descrive in quale posizione del men inserire l'elemento.
Un tipico {elemento-men}  "File.Save", che rappresenta l'elemento "Save"
sotto il men "File".  Un punto viene utilizzato per separare i nomi.  Un
esempio: >

	:menu File.Save  :update<CR>

Il comando ":update" salva il file quando esso sia stato modificato.
   Potete aggiungere un altro livello: "Edit.Settings.Shiftwidth" definisce un
sotto men "Settings" nel men "Edit", con l'elemento "Shiftwidth".  Potreste
utilizzare anche livelli inferiori.  Non usatelo troppo, vi toccherebbe
spostare il mouse un bel po' per poter usare cos un elemento.
   Il commando ":menu"  molto simile al comando ":map" : il lato sinistro
specifica quale elemento verr lanciato ed il destro definisce i caratteri che
verranno eseguiti. {keys} sono caratteri, vengono usati solo come li avevate
scritti. Cos nell'Insert mode, quando {keys}  puro testo, questo testo viene
inserito.


TASTI DI SCELTA RAPIDA

Il carattere ampersand (&), viene utilizzato per indicare un tasto di scelta
rapida.  Per esempio, potete utilizzare Alt-F per selezionare il men "File" e
quindi premere S per il comando "Save". (L'opzione 'winaltkeys' pu peraltro
disabilitare questa possibilit!).  Comunque il {menu-item} appare come
"&File.&Save".  I caratteri acceleratori veranno sottolineati nel men.
   Dovrete fare attenzione che ogni tasto venga usato una sola volta in
ciascun men.  Altrimenti non sapreste quale dei due potrebbe venire usato.
Vim non vi avvisa di ci.


PRIORITA'

La definizione corrente dell'elemento di men File.Save  come segue: >

	:menu 10.340 &File.&Save<Tab>:w  :confirm w<CR>

Il numero 10.340  chiamato il numero di priorit.  Questo viene utilizzato
dall'editor per decidere in quale posizione inserire l'elemento di men.  Il
primo numero (10) indica la posizione sulla barra dei men.  I men con i
valori pi bassi vengono posizionati a sinistra, quelli con valori pi alti
a destra.
   Questi sono le priorit usate per i men standard:

	  10	20     40     50      60       70		9999

	+------------------------------------------------------------+
	| File	Edit  Tools  Syntax  Buffers  Window		Help |
	+------------------------------------------------------------+

Notate che al men Help viene dato un numero molto grande, per farlo apparire
il pi a destra possibile.
   Il secondo numero (340) determina la posizione dell'elemento nel men a
discesa.  I numeri pi bassi vanno in alto, quelli pi alti in fondo.  Queste
sono le priorit nel men File:

			+-----------------+
	    10.310	|Open...	  |
	    10.320	|Split-Open...	  |
	    10.325	|New		  |
	    10.330	|Close		  |
	    10.335	|---------------- |
	    10.340	|Save		  |
	    10.350	|Save As...	  |
	    10.400	|---------------- |
	    10.410	|Split Diff with  |
	    10.420	|Split Patched By |
	    10.500	|---------------- |
	    10.510	|Print		  |
	    10.600	|---------------- |
	    10.610	|Save-Exit	  |
	    10.620	|Exit		  |
			+-----------------+

Notate che c' un intervallo tra i numeri.  Qui  dove potete inserire i
vostri elementi personali, se lo volete davvero (spesso  meglio lasciare
stare i men standard ed aggiungere un nuovo men per i vostri elementi
personali).
   Quando create un sotto-men, potete aggiungere un altro ".numero" alla
priorit.  Cos ogni nome nel {menu-item} ha i propri numeri di priorit.

CARATTERI SPECIALI

Il {menu-item} in questo esempio   "&File.&Save<Tab>:w".  Ci evidenzia un
punto importante: {menu-item} deve essere una sola parola.  Se volete mettere
un punto, spazio o tabulatore nel nome usate la notazione <> (<space> e <tab>,
ad esempio) od usare l'escape backslash (\). >

	:menu 10.305 &File.&Do\ It\.\.\. :exit<CR>
	
In questo esempio, l'elemento di men "Do It..." contiene uno spazio ed il
comando  ":exit<CR>".

Il carattere <Tab> nel nome del men viene usato per separare la parte che
definisce il nome del men da quella che da un'indicazione all'utente.  La
parte dopo il <Tab> viene visualizzata allineata nel men.  Nel men File.Save
il nome usato  "&File.&Save<Tab>:w".  Cos il nome del men  File.Save e
l'indicazione  ":w".


SEPARATORI

Le linee di separazione, utilizzare per raggruppare assieme elementi di men,
possono essere definite usando un nome che inizi e finisca in un '-'.  Ad
esempio "-sep-".  Se si usano diversi separatori i nomi debbono essere
differenti.  Altrimenti i nomi non vanno.
   Il comando da un separatore non verr mai eseguito, ma voi dovete definirne
comunque uno.  Un solo due punti va bene.  Esempio: >

	:amenu 20.510 Edit.-sep3- :

==============================================================================
*42.2*	Comandi dei men

Potete definire elementi del men che esistono solo per alcune modalit. Ci
funziona proprio come le variazioni nel comando ":map" :

	:menu		Normal, Visual and Operator-pending mode
	:nmenu		Normal mode
	:vmenu		Visual mode
	:omenu		Operator-pending mode
	:menu!		Insert and Command-line mode
	:imenu		Insert mode
	:cmenu		Command-line mode
	:amenu		All modes

Per evitare che i comandi di un elemento del men vengano mappati, usate il
comando ":noremenu", ":nnoremenu", ":anoremenu", etc.


UTILIZZO DI :AMENU

Il comando ":amenu"  leggermente diverso.  Esso assume che le {keys} che voi
date debbano essere eseguite in Normal mode.  Quando Vim  in Visual od Insert
mode quando il men viene usato, Vim prima deve tornare al Normal mode.
":amenu" inserisce un CTRL-C o un CTRL-O per voi.  Per esempio, se usate
questo comando: >

	:amenu  90.100 Mine.Find\ Word  *

Allora i comandi del men risultanti saranno:

	Normal mode:		*
	Visual mode:		CTRL-C *
	Operator-pending mode:	CTRL-C *
	Insert mode:		CTRL-O *
	Command-line mode:	CTRL-C *

Se siete in modalit Command-line, il CTRL-C abbandoner il comando sinora
scritto.  In Visual e Operator-pending mode CTRL-C fermer la modalit.  In
Insert mode CTRL-O eseguir il comando e quindi ritorner in Insert mode.
   CTRL-O funziona per un solo comando.  Se avete necessit di usare due o pi
comandi, inseriteli in una funzione e quindi chiamate questa funzione.
Esempio: >

	:amenu  Mine.Next\ File  :call <SID>NextFile()<CR>
	:function <SID>NextFile()
	:  next
	:  1/^Code
	:endfunction

Questa opzione del men va al prossimo file nella lista degli argomenti con
":next".  Poi cerca la linea che inizia con "Code".
   Il <SID> prima del nome della funzione  l'ID dello script.  Ci rende la
funzione locale allo script di Vim corrente.  Ci evita problemi quando una
funzione con lo stesso nome  viene definita in un altro file di script.
Vedere |<SID>|.


MENU' SILENTI

Il men esegue le {keys} come le avete scritte.  Per un comando ":" ci
significa che vedrete il comando scritto sulla linea di comando.  Se  un
comando lungo, allora apparir il prompt hit-Enter.  Ci potrebbe essere molto
fastidioso!
   Per evitare ci rendete muto il men.  Ci viene fatto con l'argomento
<silent>.  Ad esempio, prendete al chiamata a NextFile() nell'esempio
precedente.  Quando usate questo men vedrete ci sulla linea di comando:

	:call <SNR>34_NextFile() ~

Per evitare la comparsa del testo, inseriamo "<silent>" come primo argomento: >

	:amenu <silent> Mine.Next\ File :call <SID>NextFile()<CR>

Non utilizzate "<silent>" troppo spesso.  Non  necessario per comandi brevi.
Se realizzate dei men per qualcun altro, poter vedere il comando eseguito
dar un suggerimento su ci che egli pu avere scritto, invece di usare il
mouse.


ELENCARE I MENU'

Quando un comando del men viene usato senza la parte {keys}, esso elenca i
men gi definiti.  Potete specificare un questo si comporta richiamando il
contenuto di un men gi definito. Potete specificare un {menu-item} od una
parte di esso, per elencare men specifici.  Esempio: >

	:amenu

Ci elenca tutti i men.  Che  una lista lunga!  Meglio specificate il nome
di un men per ottenere una lista pi corta: >

	:amenu Edit

Questo mostra solo gli elementi del men "Edit" per tutte le modalit.  Per
mostrare solo uno specifico elemento del men per l'Insert mode: >

	:imenu Edit.Undo

Attenti a scrivere esattamente il nome giusto.  Qui contano maiuscole e
minuscole.  Ma  l'&' per gli acceleratori pu venire omesso.  Il <Tab> e ci
che viene dopo pu ugualmente venir lasciato fuori.


CANCELLARE I MENU'

Per cancellare un men, si utilizza lo stesso comando usato per elencarli, ma
con "menu" cambiato in "unmenu".  Cos ":menu" diventa ":unmenu", ":nmenu"
diventa ":nunmenu", ecc.  Per eliminare l'elemento "Tools.Make" per l'Insert
mode: >

	:iunmenu Tools.Make

Potete cancellare un intero men, con tutti i propri elementi, usando il nome
del men stesso:  Esempio: >

	:aunmenu Syntax

Ci cancella il men Syntax e tutti i suoi elementi.

==============================================================================
*42.3*	Vario

Potete cambiare l'aspetto dei men tramite delle flags in 'guioptions'.  Nel
valore di default esse sono tutte incluse. Potete rimuovere una flag con un
comando del tipo: >

	:set guioptions-=m
<
	m		Quando rimossa la barra dei men non viene mostrata.

	M		Quando rimossa non vengono caricati i men di default.

	g		Quando rimossa  i men inattivi sono completamente
			rimossi (Non funziona su tutti i sistemi).

	t		Quando rimossa il tearoff non viene abilitato.

La linea punteggiata in cima ai men non  una linea di separazione.  Quando
selezionate questo elemento il men biene "teared-off": Viene mostrato entro
una finestra separata.  Questo viene chiamato men tearoff.  E' utile quando
usate lo stesso men spesso.

Per la traduzione degli elementi dei men, vedete |:menutrans|.

Poich bisogna utilizzare il mouse per selezionare gli elementi dei men, 
bene usare il comando ":browse" per selezionare un file.  Ed il comando
":confirm" per avere una finestra di dialogo invece di un messaggio di errore,
ad esempio, quando il buffer corrente ha subito modifiche.  Questi due possono
venir combinati: >

	:amenu File.Open  :browse confirm edit<CR>

":browse" fa apparire un navigatore di file per selezionare il file da aprire.
":confirm" fa apparire una finestra di dialogo se il file corrente ha subito
modifiche.  Potete scegliere se salvare le modifiche, gettarle via o
cancellare il comando.
   Per elementi pi complicati, le funzioni confirm() e inputdialog() possono
venir utilizzate.  I men di default contengono qualche esempio.

==============================================================================
*42.4*	Toolbar ed i men popup

Ci sono due men speciali: ToolBar e PopUp.  Elementi che iniziano con
questi nomi non compaiono nella barra del men normale.


TOOLBAR

La toolbar compare solo se la flag "T"  inclusa nell'opzione 'guioptions'.
   La toolbar utilizza icone piuttosto che testo per rappresentare il comando.
Per esempio, il {menu-item} chiamato "ToolBar.New" provoca la comparsa
dell'icona "New" sulla toolbar.
   Vim ha un set di 28 icone built-in.  Potete trovare una tabella qui:
|builtin-tools|.  La maggior parte di queste  gi usata nella toolbar di
default.  Potete ridefinirne l'azione (dopo che i men di default siano a
punto).
   Potete aggiungere una nuova bitmap per un elemento della toolbar.  Oppure
definire un nuovo elemento per la toolbar con una bitmap.  Per esempio,
definiamo un nuovo elemento di toolbar con: >

	:tmenu ToolBar.Compile  Compila il file corrente
	:amenu ToolBar.Compile  :!cc % -o %:r<CR>


Ora bisogna creare una nuova icona.  Per gli utenti di MS-Windows, questa
deve essere in formato bitmap, con il nome "Compile.bmp".  Per Unix viene
usato il formato XPM, il nome  "Compile.xpm".  Le dimensioni devono essere
18x18 pixels (sotto Windows  possibile utilizzare anche altre dimensioni, ma
apparir noioso).
   Mettete le bitmap nella directory "bitmaps" entro una delle directory del
'runtimepath'. Ad esempio, per Unix "~/.vim/bitmaps/Compile.xpm".

Potete definire anche delle didascalie per le icone della toolbar.  Una
didascalia  una breve testo che spiega cosa far un elemento della toolbar.
Per esempio "Open file".  Apparir quando il puntatore del mouse si trova
sull'elemento, senza spostarsi per un attimo.  Ci  molto utile per capire
l'immagine se non fosse chiara.  Esempio: >

	:tmenu ToolBar.Make  Run make in the current directory
<
	Note:
	Fate molta attenzione alle maiuscole/minuscole.  "Toolbar" e "toolbar"
	sono diverse da "ToolBar"!

Per eliminare una didascalia, usate il comando |:tunmenu|.

L'opzione 'toolbar' pu essere utilizzata per mostrare del testo invece di una
bitmap, oppure entrambi testo ed una bitmap.  Molti usano solo la bitmap
poich il testo prende pi spazio.


MENU' POPUP

I men popup compaiono dove si trova il mouse.  In MS-Windows li attivate
cliccando con il tasto destro del mouse.  Allora potete selezionare un
elemento con il tasto sinistro del mouse.  In Unix i men popup si attivano
cliccando e rilasciando il tasto destro del mouse.
   I men popup compaiono solo se l'opzione 'mousemodel'  stata impostata
su "popup" o su "popup_setpos".  La differenza tra le due  che "popup_setpos"
muove il cursore verso la posizione in cui si trova il puntatore del mouse.
Quando si clicca entro una selezione, questa verr utilizzata non modificata.
Quando c' una selezione, ma cliccate fuori di essa, la selezione viene
rimossa.
   Esistono men popup separati per ogni modalit.  Cos non ci sono mai
elementi inattivi come nei men normali.

Qual  il significato della vita, dell'universo e di ogni cosa?  *42*
Douglas Adams, la sola persona che ha conosciuto cosa fosse davvero questa
questione  ormai morto, sfortunatamente.  Cos adesso potreste chiedervi
quale sia il significato della morte...

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

Capitolo seguente: |usr_43.txt|  Utilizzo dei tipi di file

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

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