Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 209

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Emacs Beginner's HOWTO: Modalit&agrave; di Emacs</TITLE>
 <LINK HREF="Emacs-Beginner-HOWTO-4.html" REL=next>
 <LINK HREF="Emacs-Beginner-HOWTO-2.html" REL=previous>
 <LINK HREF="Emacs-Beginner-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Emacs-Beginner-HOWTO-4.html">Avanti</A>
<A HREF="Emacs-Beginner-HOWTO-2.html">Indietro</A>
<A HREF="Emacs-Beginner-HOWTO.html#toc3">Indice</A>
<HR>
<H2><A NAME="s3">3. Modalit&agrave; di Emacs</A></H2>

<P>Le modalit&agrave; (mode) di Emacs sono differenti ambienti e
funzionalit&agrave; che potete attivare o disattivare (o
personalizzare, ovviamente) per usarle in circostanze diverse. Le
modalit&agrave; sono quello che rende un editor (Emacs) ugualmente
utile per scrivere documentazione, programmare in una variet&agrave;
di linguaggi (C, C++, Perl, Python, Java e molti altri), creare una
home page, inviare E-Mail, leggere i newsgroup Usenet, tenere traccia
dei vostri appuntamenti e perfino giocare.
<P>
<P>Le modalit&agrave; di Emacs sono semplicemente delle librerie di codice Lisp che estendono, modificano o migliorano Emacs in qualche modo.
<P>
<H2><A NAME="ss3.1">3.1 Modalit&agrave; Primarie vs. Modalit&agrave; Secondarie </A>
</H2>

<P>Ci sono fondamentalmente due tipi di modalit&agrave; disponibili:
Primarie (Major) e Secondarie (Minor). La distinzione non &egrave;
la cosa pi&ugrave; facile da afferrare finch&eacute; non avrete
lavorato con un po' di queste, ma lasciatemici provare a dare una
spiegazione. 
<P>
<P>In un dato momento pu&ograve; essere attivata solamente una
modalit&agrave; primaria. Invece nello stesso momento possono essere
attive molte modalit&agrave; secondarie. Le modalit&agrave; primarie
tendono ad essere specifiche di un linguaggio o di un compito, mentre
le modalit&agrave; secondarie sono delle utility pi&ugrave; piccole e
meno specifiche che riguardano molti compiti. 
<P>
<P>Suona come qualcosa di astratto, quindi proviamo con un
esempio. C'&egrave; una modalit&agrave; che io uso abbastanza spesso
quando devo scrivere dei vecchi e semplici file di testo. Si chiama <CODE>text-mode</CODE>. Questa modalit&agrave; fu progettata per scrivere testo in forma libera come in un file README. Capisce come identificare parole e paragrafi e in generale si assicura di fare quello che mi aspetto quando uso i normali tasti di navigazione in un documento.
<P>
<P>Quando sto scrivendo testo per uso umano, normalmente voglio che abbia un bell'aspetto. Dovrebbe essere allineato in maniera appropriata ad un valore ragionevole e cos&igrave; via. Per abilitare l'allineamento devo solo attivare la modalit&agrave; secondaria <CODE>auto-fill</CODE>. Questo modalit&agrave; cerca di fare la Cosa Giusta quando continuo a scrivere e raggiungo la fine della riga. Il fatto che sia una modalit&agrave; secondaria significa che pu&ograve; lavorare  con diverse modalit&agrave; primarie. La mia accezione di ``Cosa Giusta'' da fare quando raggiungo la fine della riga &egrave; diversa quando sono in <CODE>text-mode</CODE> da quando sono in <CODE>java-mode</CODE>, per esempio. Io non voglio che il mio codice Java sia allineato come se fosse testo in inglese. Ma io <EM>voglio</EM> che i blocchi di commenti nel mio codice Java siano allineati! La modalit&agrave; <CODE>auto-fill</CODE> &egrave; intelligente abbastanza da capire il tutto.
<P>
<P>Gli autori delle varie modalit&agrave; di Emacs hanno fatto un ottimo lavoro nell'assicurarsi che cose che dovrebbero funzionare come modalit&agrave; secondarie siano delle modalit&agrave; secondarie.
<P>
<P>Se riguardate il disegno in ASCII della schermata di Emacs, noterete che la linea di modo identifica la/le modalit&agrave; in cui Emacs si trova. Nell'esempio, era in una modalit&agrave; chiamata ``Lisp Interaction'' che &egrave; la modalit&agrave; di default. &Egrave; in realt&agrave; utile solamente se state per scrivere codice Lisp. (Ma dato che la maggior parte di Emacs &egrave; scritta in Lisp, perch&eacute; no?)
<P>
<H2><A NAME="ss3.2">3.2 Le Modalit&agrave; di Programmazione</A>
</H2>

<P>Primo e in primo luogo, Emacs &egrave; stato disegnato da un programmatore per programmatori. Ci sono modalit&agrave; di alta qualit&agrave; disponibili per quasi ogni linguaggio di programmazione pi&ugrave; diffuso a cui potete pensare (e perfino per qualcuno non cos&igrave; diffuso). Qui descriver&ograve; solo brevemente alcuni di essi.
<P>
<P>La maggior parte delle modalit&agrave; condividono alcune caratteristiche comuni. Normalmente, alcune o tutte delle cose seguenti:
<P>
<UL>
<LI>Forniscono un'evidenziazione a colori della sintassi del linguaggio. 
</LI>
<LI>Forniscono un indentazione automatica e formattazione del codice del linguaggio.
</LI>
<LI>Forniscono un aiuto (del linguaggio) sensibile al contesto.
</LI>
<LI>Si interfacciano automaticamente con il vostro debugger.
</LI>
<LI>Aggiungono dei men&ugrave; specifici del linguaggio alla barra dei men&ugrave;. 
</LI>
</UL>
<P>
<P>In pi&ugrave;, ci sono delle modalit&agrave; non specifiche di un linguaggio che aiutano per scopi che sono comuni nella programmazione in molti linguaggi. Cose del tipo interfacciamento per il vostro controllo di versione del software, aggiunta automatica di commenti al vostro codice, creazione di Makefile, aggiornamento di Change Logs e cos&igrave; via.
<P>
<P>Quando aggiungete tutte queste modalit&agrave; e considerando la maturit&agrave; e la stabilit&agrave; del codice di Emacs, questi sar&agrave; abbastanza ben comparabile agli Integrated Development Environments (IDE) commerciali sul mercato per linguaggi come C++ e Java. E, ovviamente, &egrave; gratuito.
<P>
<H3>C/C++/Java</H3>

<P>Dato che la sintassi del C, C++ e Java sono abbastanza simili, c'&egrave; una modalit&agrave; di Emacs che tratta tutti e tre i linguaggi (lo stesso per Objective-C e IDL). &Egrave; veramente un maturo e completo package ed &egrave; incluso nella distribuzione di Emacs. Questa modalit&agrave; si chiama <CODE>cc-mode</CODE> o <CODE>CC Mode</CODE>.
<P>
<P>Per maggiori dettagli o per scaricare la versione pi&ugrave; recente, visitate 
<A HREF="http://www.python.org/emacs/">http://www.python.org/emacs/</A>.
<P>
<H3>Perl</H3>

<P>Ci sono di fatto due modalit&agrave; per l'editing del codice Perl in Emacs. Il primo si chiama <CODE>perl-mode</CODE> (come vi potevate aspettare) e il secondo &egrave; <CODE>cperl-mode</CODE>. Non ho una buona padronanza di questa storia e del perch&eacute; ci sono due modalit&agrave; (i documenti non lo dicono), ma sembrerebbe che <CODE>perl-mode</CODE> fosse la modalit&agrave; originale per editare il codice Perl in Emacs. Sembra avere meno servizi del <CODE>cperl-mode</CODE> e manca l'abilit&agrave; di riconoscere alcuni costrutti estrosi del linguaggio Perl.
<P>
<P>Personalmente, io uso e raccomando <CODE>cperl-mode</CODE> il quale sembra essere abbastanza attivamente mantenuto ed ha quasi tutte le funzionalit&agrave; che potrei mai volere. Potete trovare l'ultima release qui: 
<A HREF="ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs">ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs</A>.
<P>
<P>Ma non prendete le mie parole come definitive. Provateli entrambi e usate quello che meglio soddisfa le vostre necessit&agrave;. 
<P>
<H3>Python</H3>

<P>Anche per Python (un altro linguaggio di scripting molto popolare)
&egrave; disponibile una modalit&agrave; Emacs. Per quel che posso dire io,
<EM>non</EM> &egrave; distribuito con GNU Emacs ma &egrave;
distribuito con XEmacs. Comunque funziona abbastanza bene in ambedue gli
editor.
<P>
<P>Potete ottenere il <CODE>python-mode</CODE> dal sito web ufficiale di Python 
<A HREF="http://www.python.org/emacs/python-mode/">http://www.python.org/emacs/python-mode/</A>.
<P>
<H3>Altro</H3>

<P>Ci sono molte molte altre modalit&agrave; di editing disponibili per aiutare i programmatori. Queste modalit&agrave; aiutano con cose tipo:
<P>
<UL>
<LI>Script della shell (Bash, sh, ksh, csh, ...)</LI>
<LI>Awk, Sed, Tcl, ...</LI>
<LI>I Makefile</LI>
<LI>Change Logs</LI>
<LI>Documentazione</LI>
<LI>Debugging
</LI>
</UL>
<P>
<P>E ancora di pi&ugrave;. Guardate l'ultima sezione di questo documento per maggiori informazioni per trovare altre modalit&agrave; e add-in.
<P>
<H2><A NAME="ss3.3">3.3 Editoria</A>
</H2>

<P>Le fantasiose modalit&agrave; di Emacs <EM>non</EM> sono limitate solo a quelli che scrivono codice. Anche persone che scrivono documentazione (di qualsiasi tipo) possono beneficiare di un'ampia scelta di modalit&agrave; di Emacs.
<P>
<H3>Controllo ortografico (<CODE>ispell</CODE> mode)</H3>

<P>Gli autori di molti tipi di documenti hanno bisogno di effettuare
ogni tanto il controllo ortografico. Se avete <B>GNU ispell</B> installato, potete digitare <CODE>M-x ispell</CODE> ed effettuare il controllo ortografico sul buffer corrente. Se ispell trova parole che non conosce, vi avvisa con una lista di possibili rimpiazzi e vi permette di selezionarne uno (o nessuno). Le sue funzionalit&agrave; equivalgono ai controllori ortografici in molti pacchetti software diffusi, non gratuiti.
<P>
<H3>HTML (<CODE>html-helper</CODE> mode)</H3>

<P>Se vi trovate a dover scrivere file HTML una volta ogni tanto (oppure molte volte), potreste provare <CODE>html-helper-mode</CODE>. &Egrave; disponibile da 
<A HREF="http://www.santafe.edu/~nelson/tools/">http://www.santafe.edu/~nelson/tools/</A> oltre alla documentazione e altra roba correlata.
<P>
<P>Come il suo nome suggerisce, <CODE>html-helper-mode</CODE> fornisce
molte cose per aiutare quelle persone che ancora scrivono HTML a mano
(alla vecchia maniera).
<P>
<H3>TeX (<CODE>tex-mode</CODE>)</H3>

<P>Quando state scrivendo documenti in TeX, &egrave; spesso di aiuto
avere Emacs che aggiunge alcuni colori ed evidenzia le barre inverse,
parentesi graffe ed altri caratteri. <CODE>tex-mode</CODE> si occupa di questo per voi.
<P>
<P>Sebbene non scriva pi&ugrave; molto direttamente in TeX, quando l'ho fatto, questa modalit&agrave; si &egrave; rivelata abbastanza utile nel rendere i miei sorgenti in TeX un po' pi&ugrave; leggibili.
<P>
<H3>SGML (<CODE>sgml-mode</CODE>)</H3>

<P>Il documento che state leggendo &egrave; stato scritto in SGML (e probabilmente convertito nel formato in cui lo state leggendo). <CODE>sgml-mode</CODE> fornisce tutte le basi per i documenti SGML: validazione, evidenziazione, marcatore avanti, marcatore indietro e molto altro. &Egrave; una parte standard di Emacs.
<P>
<H2><A NAME="ss3.4">3.4 Altre modalit&agrave;</A>
</H2>

<P>Ovviamente, ci sono molte altre utili modalit&agrave; per rendere la vita pi&ugrave; facile. Ecco giusto un campione delle pi&ugrave; diffuse: 
<P>
<H3>Controllo di versione (<CODE>vc</CODE> mode)</H3>

<P>La modalit&agrave; <CODE>vc</CODE> si interfaccia con la maggior parte dei pi&ugrave; diffusi controllori di versione dell'ultim'ora (RCS, SCCS, CVS) per rendere veramente facile il controllo dei file dentro e fuori, gestire release e cos&igrave; via. &Egrave; una parte standard di Emacs ed &egrave; documentata nella documentazione di Emacs.
<P>
<H3>Modalit&agrave; Shell</H3>

<P>Perch&eacute; spostarsi in un'altra finestra X o in una console virtuale solo per far girare pochi comandi della shell? Fatelo da dentro Emacs e evitatevi il problema. <CODE>:-)</CODE>
<P>
<P><CODE>M-x shell</CODE> lancer&agrave; una shell dentro a un buffer di Emacs. Potete fare con questo buffer la maggior parte di quello che potreste fare al prompt di una normale shell (eccetto che lanciare programmi a tutto schermo come <CODE>vi</CODE> o <CODE>pine</CODE>) poich&eacute; Emacs dialoga con la vostra vera shell dietro le quinte.
<P>
<P>Questa &egrave; una parte standard di Emacs, di nuovo, quindi la troverete documentata nella documentazione di Emacs.
<P>
<H3>Telnet e FTP</H3>

<P>Perch&eacute; spostarsi in un'altra finestra X o in una console
virtuale solo per far girare telnet o FTP? Fatelo da dentro Emacs e
evitatevi il problema. (Non avete ancora notato il modello?)
<P>
<P>Similmente a lanciare una shell all'interno di Emacs, potete fare telnet e ftp. Provate <CODE>M-x telnet</CODE> o <CODE>M-x ftp</CODE> per sperimentarlo da soli. Vedere la documentazione per tutti i grumosi dettagli.
<P>
<H3>Man</H3>

<P>Perch&eacute; spostarsi in un'altra finestra X o in una console virtuale solo per leggere una pagina man? Fatelo da dentro Emacs e evitatevi il problema. (Smetto! Lo prometto.)
<P>
<P>Similmente a lanciare una shell all'interno di Emacs, potete leggere le pagine man. Provate <CODE>M-x man</CODE> per sperimentarlo da soli. Vedere la documentazione per altre informazioni.
<P>
<H3>Ange-FTP</H3>

<P>Citando la documentazione di <CODE>ange-ftp</CODE>:
<P>
<BLOCKQUOTE>
Questo pacchetto tenta di dare accesso a file e directory usando FTP dall'interno di GNU Emacs nel modo pi&ugrave; semplice e trasparente possibile. Un sottoinsieme delle comuni routine di gestione dei file sono state estese per interagire con FTP.
</BLOCKQUOTE>
<P>
<P>Questo significa che potete trattare i file in una macchina remota come se fossero in locale. Quindi se avete bisogno di editare un file su un computer remoto, dite semplicemente a Emacs di aprirlo (usando una sintassi leggermente diversa per il percorso) ed egli si occuper&agrave; di tutti i dettagli di collegamento e rintracciamento del file. Dopo, quando salvate il file con <CODE>C-x C-s</CODE>, <CODE>ange-ftp</CODE> intercetta il salvataggio e scrive il file sulla macchina remota.
<P>
<P>La sintassi leggermente diversa per il percorso &egrave; qualcosa di simile... Un file chiamato ``miofile'', in una directory ``user'', su una macchina chiamata ``my.host.org'' pu&ograve; essere aperto aprendo (<CODE>C-x f</CODE>) il file con:
<P>
<BLOCKQUOTE>
<CODE>/user@my.host.org:~user/miofile</CODE>
</BLOCKQUOTE>
<P>
<P>Anche questo &egrave; parte della distribuzione standard di Emacs, quindi potete trovare la sua documentazione nella documentazione di Emacs.
<P>
<P>Grazie a Etienne Grossmann (
<A HREF="mailto:etienne@anonimo.isr.ist.utl.pt">etienne@anonimo.isr.ist.utl.pt</A>) per l'esempio sopra riportato.
<P>
<HR>
<A HREF="Emacs-Beginner-HOWTO-4.html">Avanti</A>
<A HREF="Emacs-Beginner-HOWTO-2.html">Indietro</A>
<A HREF="Emacs-Beginner-HOWTO.html#toc3">Indice</A>
</BODY>
</HTML>