Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>LinuxDoc+Emacs+Ispell-HOWTO: Trucchetti Sporchi</TITLE>
<LINK HREF="LinuxDoc+Emacs+Ispell-HOWTO-7.html" REL=next>
<LINK HREF="LinuxDoc+Emacs+Ispell-HOWTO-5.html" REL=previous>
<LINK HREF="LinuxDoc+Emacs+Ispell-HOWTO.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO-7.html">Avanti</A>
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO-5.html">Indietro</A>
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO.html#toc6">Indice</A>
<HR>
<H2><A NAME="s6">6. Trucchetti Sporchi</A>   </H2>

<H2><A NAME="ss6.1">6.1 Inserire automaticamente un header</A>
    </H2>

<P>    Emacs permette di associare delle procedure ad eventi specifici (aprire un file, salvarlo, avviare una nuova modalit&agrave; etc ).
<P>   
<P>     La libreria <B>autoinsert</B> utilizza questa caratteristica: quando aprite un nuovo file con Emacs, questa libreria inserisce, dipendentemente dal tipo di file, un header <EM>standard</EM>.
   
<P>    Nel nostro caso, questo header <EM>standard</EM> pu&ograve; definire il tipo di documento (LinuxDoc), il titolo, l'autore, e la data.
   
<P>    Descriver&ograve; adesso due modi per fare questo. Potete creare un template che contenga le informazioni da inserire, oppure potete avviare una routine <B>elisp</B>.
<P>  
<H3>Inserendo un file    </H3>

<P>   Per prima cosa dovete permettere a Emacs di avviare la <CODE>auto-insert</CODE> quando un file viene aperto, quindi di leggere la libreria <CODE>auto-insert</CODE> che dichiara la <CODE>auto-insert-alist</CODE> che necessita di cambiamenti. Questa lista definisce gli header da inserire per ogni tipo di file. Per default, il file da inserire deve trovarsi nella cartella <CODE>~/insert/</CODE>, ma &egrave; possibile definire la variabile <CODE>auto-insert-directory</CODE> se volete mettere i vostri file da qualche altra parte.
   
<P>   Aggiungere le seguenti linee al vostro <CODE>.emacs</CODE> per il inserire il file <CODE>~/emacs/sgml-insert.sgml</CODE> ogni volta che aprite un nuovo documento SGML:
<P>    
<PRE>
      (add-hook 'find-file-hooks 'auto-insert)
      (load-library "autoinsert")
      (setq auto-insert-directory "~/emacs/")
      (setq auto-insert-alist
            (append '((sgml-mode .  "sgml-insert.sgml"))
                    auto-insert-alist))
      
</PRE>
<P>    A questo punto potete scrivere nel file <CODE>~/emacs/sgml-insert.sgml</CODE> il vostro header personalizzato, quindi riavviare Emacs e aprire qualche nuovo file .sgml. Emacs dovrebbe chiedervi la conferma per l'inserimento automatico, e se rispondete 'Yes', inserire il nuovo header.
<P>  
<H3>Avviando una routine    </H3>

<P>    Questo funziona come prima, ma invece di impostare la
    <CODE>auto-insert-alist</CODE> in un file da inserire, dovete
    impostare una funzione da eseguire. Questo &egrave; il procedimento,
    assumendo come esempio che volete scrivere una funziona in un
    file chiamato <CODE>~/emacs/sgml-header.el</CODE> (non &egrave; il caso di appesantire il vostro <CODE>.emacs</CODE> con questo tipo di funzioni, oppure diventer&agrave; troppo grande):
<P>    
<PRE>
      (add-hook 'find-file-hooks 'auto-insert)
      (load-library "autoinsert")
      (add-to-list 'load-path "~/emacs")
      (load-library "sgml-header")
      (setq auto-insert-alist
            (append '(((sgml-mode .  "SGML Mode") . insert-sgml-header))
                    auto-insert-alist))
      
</PRE>
<P>    Troverete nella 
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO-7.html#insert-sgml-header">appendice</A> un esempio di una funzione <CODE>insert-sgml-header</CODE>.
<P>
<HR>
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO-7.html">Avanti</A>
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO-5.html">Indietro</A>
<A HREF="LinuxDoc+Emacs+Ispell-HOWTO.html#toc6">Indice</A>
</BODY>
</HTML>