Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 705

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Pour aller plus loin</TITLE>
</HEAD>
<BODY>
<H1>6. <A NAME="s6"></A>Pour aller plus loin   </H1>
<P>
<A HREF="LinuxDoc-Emacs-Ispell-HOWTO.html#toc6">Contenu de cette section</A></P>

<H2>6.1 <A NAME="ss6.1"></A> Insertion automatique d'une ent&ecirc;te    </H2>

<P>Sous Emacs, il est possible d'<EM>accrocher</EM> des actions &agrave; chaque
&eacute;v&eacute;nement (ouverture d'un fichier, sauvegarde, lancement d'un mode, etc).</P>
<P></P>
<P>La biblioth&egrave;que <B>autoinsert</B> utilise cette fonctionnalit&eacute;&nbsp;:
lorsque vous ouvrez un nouveau fichier sous Emacs, cette biblioth&egrave;que
ins&egrave;re, selon le type de ce fichier, une ent&ecirc;te <EM>standard</EM>.</P>
<P></P>
<P>Dans notre cas, cette ent&ecirc;te <EM>standard</EM> pourrait bien &ecirc;tre la partie qui
d&eacute;clare le type de document (LinuxDoc), le titre, l'auteur et la date.</P>
<P></P>
<P>Je vais d&eacute;crire ici deux fa&ccedil;ons d'ins&eacute;rer une telle ent&ecirc;te.
Soit en ins&eacute;rant un fichier que vous aurez pr&eacute;alablement
&eacute;crit, soit en lan&ccedil;ant une routine &eacute;crite en <B>elisp</B>.</P>
<P></P>
<H3>par l'insertion d'un fichier    </H3>

<P>Il faut tout d'abord pr&eacute;ciser &agrave; Emacs d'ex&eacute;cuter la commande
<CODE>auto-insert</CODE> &agrave; l'ouverture d'un fichier, puis lire la biblioth&egrave;que
<B>autoinsert</B> qui d&eacute;clare la liste <CODE>auto-insert-alist</CODE> qu'il
nous faut modifier, cette derni&egrave;re d&eacute;finissant pour chaque type de fichier
l'ent&ecirc;te &agrave; ins&eacute;rer. Le fichier &agrave; ins&eacute;rer doit par d&eacute;faut se trouver dans le
r&eacute;pertoire <CODE>~/insert/</CODE>, mais il est possible de red&eacute;finir la variable
<CODE>auto-insert-directory</CODE> si l'on veut le placer ailleurs. </P>
<P></P>
<P>Voici les lignes &agrave; rajouter &agrave; votre <CODE>.emacs</CODE> pour ins&eacute;rer le fichier
<CODE>~/emacs/sgml-insert.sgml</CODE> &agrave; l'ouverture d'un nouveau fichier
SGML&nbsp;: </P>
<P>
<PRE>
      (add-hook 'find-file-hooks 'auto-insert)
      (load-library &quot;autoinsert&quot;)
      (setq auto-insert-directory &quot;~/emacs/&quot;)
      (setq auto-insert-alist
            (append '((sgml-mode .  &quot;sgml-insert.sgml&quot;))
                    auto-insert-alist))
      
</PRE>
</P>
<P>Vous pouvez alors &eacute;crire dans le fichier <CODE>~/emacs/sgml-insert.sgml</CODE>
votre ent&ecirc;te personnalis&eacute;e, puis relancer Emacs et ouvrir un fichier
<CODE>toto.sgml</CODE>. Emacs devrait alors vous demander de confirmer
l'insertion automatique, et dans l'affirmative ins&eacute;rer votre ent&ecirc;te.</P>
<P></P>
<H3>par l'ex&eacute;cution d'une routine    </H3>

<P>Cela fonctionne un peu comme pr&eacute;c&eacute;demment, mais au lieu de pr&eacute;ciser dans la
variable <CODE>auto-insert-alist</CODE> un fichier &agrave; ins&eacute;rer, il faut pr&eacute;ciser
une fonction &agrave; ex&eacute;cuter. Voici comment proc&eacute;der, en supposant que l'on
&eacute;crive cette fonction dans un fichier <CODE>~/emacs/sgml-header.el</CODE>
(inutile d'encombrer votre <CODE>.emacs</CODE> avec cette fonction qui peut se r&eacute;v&eacute;ler
assez longue)&nbsp;:</P>
<P>
<PRE>
      (add-hook 'find-file-hooks 'auto-insert)
      (load-library &quot;autoinsert&quot;)
      (add-to-list 'load-path &quot;~/emacs&quot;)
      (load-library &quot;sgml-header&quot;)
      (setq auto-insert-alist
            (append '(((sgml-mode .  &quot;SGML Mode&quot;) . insert-sgml-header))
                    auto-insert-alist))
      
</PRE>
</P>
<P>Vous pourrez trouver en 
<A HREF="LinuxDoc-Emacs-Ispell-HOWTO-7.html#insert-sgml-header">appendice</A>
 un
exemple de cette fonction <CODE>insert-sgml-header</CODE>.</P>
<P></P>
<P></P>

<HR>
<P>
Chapitre <A HREF="LinuxDoc-Emacs-Ispell-HOWTO-7.html">suivant</A>,
Chapitre <A HREF="LinuxDoc-Emacs-Ispell-HOWTO-5.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="LinuxDoc-Emacs-Ispell-HOWTO.html#toc6">ce chapitre</A>,
 <A HREF="LinuxDoc-Emacs-Ispell-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="LinuxDoc-Emacs-Ispell-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>