<!doctype linuxdoc system>
<article>
<title>HOWTO Débuter sous Emacs</title>
<author>
Jeremy D. Zawodny, <htmlurl url="mailto:jzawodn@wcnet.org" name="jzawodn@wcnet.org">
</author>
<date>
v1.7, 14 Octobre 1999
</date>

<abstract>
Ce document est une aide aux débutants sous l'éditeur Emacs. Il prend
pour acquis la manipulation de <tt>vi</tt> ou d'un éditeur
similaire. La dernière version de ce document est aussi disponible sur
<htmlurl url="http://www.wcnet.org/jzawodn/emacs/" name="http://www.wcnet.org/jzawodn/emacs/">

<toc>
<!-- ********************************************* -->
<sect>Introduction <label id="introduction"> <sect1>Copyright
<p>Copyright &copy; 1998 - 1999 Jeremy D. Zawodny.  La licence
d'exploitation du document est sous licence générale GNU publique. Une
version en ligne est disponible ici:<htmlurl url
="http://www.gnu.org/copyleft/gpl.html" name
="http://www.gnu.org/copyleft/gpl.html">
</sect1>


<sect1>Public et Dessein 

<p>Ce document est destiné aux utilisateurs de Linux intéressés
d'apprendre à utiliser Emacs et à le mettre en oeuvre. Ce document
commença comme l'illustration d'un bref tutorial que j'ai été donné de
présenter aux rencontres des utilisateurs de Linux de Tolède <htmlurl
url = "http://www.talug.org/" name ="http://www.talug.org/">.  Il a
quelque peu grossi depuis, suite aux retours que j'ai eu grâce aux
membres de la communauté. Voyez la section remerciement pour les
détails.  <p>Dans ce document, rien n'est spécifique à Linux. Il
s'applique à toutes les versions d'Emacs, même celle fonctionnant sous
Microsoft Windows. Mais étant donné que ce document fait parti du
projet de documentation Linux, je précise le fait qu'il a été
développé pour les utilisateurs de Linux, car c'est pour eux qu'il a
été écrit.  <p>Enfin, pour ceux d'entre vous qui préfère le nom
GNU/Linux au simple Linux, (allez lire <htmlurl
name="http://www.gnu.org/gnu/linux-and-gnu.html"
url="http://www.gnu.org/gnu/linux-and-gnu.html"> pour voir de quoi il
retourne) vous êtes les bienvenus à substituer mentalement GNU/Linux
pour toutes les occurences de Linux dans ce document. Bien que je ne
désaprouve pas le raisonnement et l'esprit contenu derrière cette
idée, je ne me sens pas forcé d'écrire GNU/Linux.
</sect1>

<sect1>Qu'est ce qu'Emacs?  

<p>Emacs possède différentes utilitées suivant les personnes qui
l'utilisent. Suivant la personne à qui vous posez la question, vous
pourrez obtenir l'une des réponses suivantes:
<itemize>
<item>Un éditeur de texte 
<item>Un client de Messagerie 
<item>Un lecteur de News 
<item>Un traitement de texte 
<item>Une religion / un sacerdoce 
<item>Un environnement de développement intégré 
<item>Tout ce que vous voulez qu'il soit!
</itemize>
<p>Mais pour notre démonstration, prétendons seulement qu'il s'agit
d'un éditeur de texte, un éditeur de texte étonnamment flexible. Nous
approfondirons la question un peu plus tard. Emacs a été écrit par
Richard Stallman (fondateur de la Free Software Fondation : <htmlurl
url="http://www.fsf.org/" name="http://www.fsf.org/"> et du projet GNU
<htmlurl url="http://www.gnu.org/" name="http://www.gnu.org/">) et qui
le maintient encore aujourd'hui.  <p>Emacs est l'un des outils
d'éditions de textes les plus populaires utilisés sur Linux (et
Unix). C'est le second en popularité après <bf>vi</bf>. Il est aussi
connu pour ses incommensurables possibilitées, sa capacité à être
customizé, et son manque de bug (son absence de bug)! Ses larges
possibilitées et sa capacité à être réellement configuré sont le
résultat de la conception et de l'implémentation d'Emacs.  Sans aller
dans les détails, nous dirons qu'Emacs n'est simplement pas <bf>juste
un éditeur</bf>. C'est un éditeur écrit principalement en
<bf>Lisp</bf>.  Dans le noyau d'Emacs il y a un interpréteur contenant
toutes les subtilitées de Lisp écris en C. Seulement les parties les
plus basiques et les pièces de bas-niveau d'Emacs sont écrites en
C. La majorité de l'éditeur est en réalité écrit en Lisp. Donc, dans
un sens, Emacs possède un langage de programmation entier incorporé,
que vous pouvez utilisez pour customizer, pour étendre, et pour
changer son comportement.  <p>Emacs est aussi l'un des plus vieux
éditeurs. Le fait est qu'il a été utilisé par des milliers de
programmeurs durant les 20 dernières années signifie qu'il existe
énormément de modules externes. Ces modules vous permettent de faire
avec Emacs ce que Stallman n'a probablement jamais révé être possible
de faire lorsqu'il a commencé à travailler sur Emacs. Nous parlerons
de cela dans une prochaine section.  <p>Il y a beaucoup d'autre sites
Web et de documents qui donnent un meilleur apercu d'Emacs, de son
histoire, et des sujets associés. Plutot que de tenter de reproduire
tout cela ici, je suggère que vous voyez par vous même quelques
endroits listés dans la section <ref id ="Autres_ressources"
name="Autres Ressources"> de ce document.

<sect2>Portages et Versions 

<p>Cela vaut la peine de d'indiquer qu'il existe aujourd'hui deux
éditeurs différents: GNU Emacs, et XEmacs. Les deux proviennent du
même héritage et partageant quasiment les mêmes caractéristiques. Ce
document se base sur GNU Emacs(plus précisement la version 20.3) mais
la plupart de ce qui sera dit ici s'applique aussi à XEmacs et aux
versions précedentes de GNU Emacs. Au cours de ce document, je ferais
simplement référence à Emacs. Lorsque je le ferais, pensez à ce que je
viens de vous dire.
</sect2>

<sect2>Obtenir Emacs 

<p>Obtenir Emacs est simple.  Si vous utilisez une distribution de
Linux assez populaire, comme la debian, la RedHat ou la Slackware, ou
n'importe quelles autres (NdT: comme la Mandrake), Emacs est un
package optionnel que vous pouvez installer à partir du médium de
distribution (NdT: CD-Rom, Disquette, réseau). Sinon, vous pouvez
toujours obtenir les codes sources d'Emacs et les compiler vous
mêmes. Allez sur le site web de GNU pour l'endroit précis où récupérer
Emacs:
<htmlurl url = "http://www.gnu.org/software/emacs/emacs.html" name = "http://www.gnu.org/software/emacs/emacs.html">
</sect2>
</sect1>
</sect>

<!-- ********************************************* --> 

<sect>Exécuter Emacs<label id="exec_emacs">

<sect1>Lancer &amp; quitter Emacs 

<p>En tant que nouvel utilisateur, vous allez probablement vouloir
lancer Emacs pour vous amuser un peu et l'essayer. Une fois dans
Emacs, l'une des première choses à savoir, c'est: comment sortir, vous
ne serez peut-être pas capable de savoir le faire. Donc, si vous
n'avez jamais utilisé Emacs avant, lancer vous maintenant. Sur le
prompt du shell, tapez <tt>emacs</tt> et appuyez sur entrée. Emacs
devrais se lancer. Sinon c'est qu'il n'est soit pas installé, soit
absent de votre chemin(PATH).  <p>Une fois que vous voyez Emacs, vous
devez savoir comment sortir. Les commandes pour quitter Emacs sont
<tt>C-x C-c</tt>. La notation <tt>C-x</tt> signifie que vous devez
appuyez sur la touche<tt>Ctrl</tt> et sur la touche<tt>x</tt>, en même
temps. Dans ce cas ci, vous devrez ensuite appuyez sur les touches
<tt>Ctrl</tt> et <tt>c</tt> toujours en même temps, pour quitter
Emacs.  <p>Les commandes au clavier utilisées par Emacs semblent être
vraiment étranges, bizarre, et peut être même inconfortable pour vous
de prime abord, spécialement si vous étes un utilisateur de
<tt>vi</tt>. A la différence de <tt>vi</tt>, Emacs n'a pas de mode
séparé pour éditer le texte, et executer des commandes.  <p>Pour
récapituler: <tt>emacs</tt> lance Emacs. <tt>C-x C-c</tt> termine
Emacs.

<sect2>Ce que vous allez voir 

<p>Quand Emacs se lance il prend la place entière de l'écran(en mode
texte), ou bien d'une fenêtre. Vous verez alors un menu en haut, un
peu de texte au milieu, et 2 lignes en bas de l'écran.  <p>Cela
ressemblera à cette ébauche en ASCII:
<verb>
+----------------------------------------------------------------------+
|Buffers Files Tools Edit Search Mule Help                             |
|                                                                      |
|Welcome to GNU Emacs, one component of a Linux-based GNU system.      |
|                                                                      |
|                                                                      |
|                                                                      |
| ...                                                                  |
|                                                                      |
|---1:---F1  *scratch*         (Lisp Interaction)--L1--All-------------|
|For information about the GNU Project and its goals, type C-h C-p.    |
+----------------------------------------------------------------------+
</verb>

<p><bf>NOTE:</bf> Emacs utilisera normalement la totalité de
l'écran/fenêtre. J'ai réduit l'exemple ci-dessus dans un soucis de
place. Vous aurez aussi un message de bienvenue dans Emacs lorsque
vous le lancerez pour la première fois. Je l'ai aussi omis et l'ai
remplacé par ``<tt>...</tt>`` à la place.  Le message de bienvenue
donne simplement la version courante d'Emacs que vous utilisez, ainsi
que des liens vers la documentation en-ligne et des articles s'y
rapportant.

<sect3>La Barre de menu 

<p>La ligne la plus en haut de l'interface d'Emacs est un menu. Si
vous étes sous X, vous la reconnaitrez comme étant un menu
traditionnel que vous pouvez utilisez en vous servant de votre
pointeur. Sinon , vous devrez utiliser les raccourcis claviers(non
expliqués ici) pour acceder aux menus.

</sect3>
<sect3>La Barre de status &amp; et le Mini-buffer 

<p>Sur les deux dernières lignes de l'interface d'Emacs, la plus haute
et principalement une barre de status. Elle contient des informations
a propos du buffer sur lequel vous travaillez, dans quel mode Emacs se
trouve, et d'autres informations variées sur d'autres choses. Pour
l'instant, regardez juste ce qu'elle contient.  <p>La plus basse des
lignes est appelé <bf>mini-buffer</bf>. Elle est séparée du buffer
principal par la barre de status dont nous venons juste de
parler. Vous pouvez penser que le mini-buffer d'Emacs est une ligne de
``commande``. C'est ici que les commandes que vous donnez à Emacs
apparaissent, et c'est aussi ici que les messages d'états sont
imprimés en réponses aux actions que vous effectuez.  <p>Vous
trouverez que ce que je nomme la barre de status est courament nommé
<tt>mode line</tt> dans la documentation d'Emacs.  C'est ici qu'Emacs
affiche les informations à propos des modes courants que vous
utilisez, ainsi que des choses tels que l'heure et la date courantes,
le numero de ligne, la taille du fichier, ainsi que tous ce que vous
voudriez y voir afficher.
</sect3>
</sect2>
</sect1>
<sect1>Quelques Terminologies <p>Cette section couvre les
terminologies les plus simple d'Emacs que vous pourrez rencontrer
quand lors de l'utilisation et des lectures à propos d'Emacs.

<sect2>Tampons &amp; Fichiers <p>A la différence d'autres éditeurs,
quand vous ouvrez un fichier dans Emacs il ne reste pas ouvert tout le
temps que vous travaillez dessus. A la place, Emacs lit celui-ci et le
place dans un <bf>tampon</bf> en mémoire. Tant que vous éditerez le
tampon et travaillerez avec les données rien ne sera changé sur le
disque. Simplement, lorsque vous sauvegarderez le tampon que le
fichier sur le disque sera modifié. Cette méthode possède des
avantages et des inconvénients mais cela est important que vous
compreniez qu'il fonctionne de cette manière.  <p>Comme conséquence,
vous verez le terme ``buffer`` (NdT : Tampon) utilisé dans la
documentation Emacs , dans les differents modes, dans les packages,
etc... Il faut juste réaliser que buffer signifie ``une copie du
fichier qui se situe en mémoire``. Il faut aussi signaler que le
buffer ne pointe pas toujours sur un fichier spécifique. Souvent Emacs
crée des buffers comme résultat d'une commande que vous avez éxécuté,
une liste de choix à effectuer, et ainsi de suite.  

<sect2>Points &amp; Regions

<p>Dans la terminologie d'Emacs, vous entendrez ou lirez souvent des
références au sujet des <bf>points</bf>. En des termes simple le point
signifie le curseur. La différence entre point et curseur n'est pas
importante lorsque vous commencer avec Emacs. Mais si vous etes
curieux, pensez-y de cette manière: le curseur est la réprésentation
visuelle du point. Le curseur est toujours sur une position d'un
caractère précis du buffer courant.  Le point, d'un autre coté, évolue
dans l'espace <em>entre les caractères</em> du buffer. Donc vous
pouvez dire que si le curseur est sur la lettre `e` dans le mot
``les`` alors le point est entre le `l` et le `s`.  <p>Comme la
plupart des éditeurs modernes, Emacs permet d'éffectuer des opérations
sur une section du buffer courant (identation, correction
orthographique, reformatage, couper, coller, copier, ...). Vous pouvez
marquer un bloc de texte en utilisant le clavier ou la souris et
effectuer alors des opérations uniquement sur la zone
séléctionnée. Dans Emacs, ces blocs des textes sont nommés
<bf>régions</bf>.
</sect2>
<sect2>Fenêtres 

<p>Cela sera peut-être un peu confus pour n'importe qui ayant utilisé
une interface graphique avant. Il faut juste se rappeler qu'Emacs a
été développé longtemps avant que les interfaces graphiques et les
gestionnaires de fenêtres soit populaires.  <p>Une <bf>fenêtre</bf>
dans Emacs est une zone de l'écran dans laquelle un buffer est
affiché. Quand Emacs est lancé, vous avez seulement une fenêtre
affichée. Quelques fonctions d'Emacs, comme la documentation et
l'aide, ouvrent souvent (temporairement) une fenêtre supplémentaire
dans votre écran d'Emacs.  <p>Les fenêtres d'Emacs n'ont rien en
commun avec celle de X-Window en terme d'interface graphique. Vous
pouvez ouvrir d'autres fenêtre X-Window pour afficher des buffers
d'Emacs, par exemple pour comparer deux fichiers côte à côte. Ces
nouvelles fenêtres X-Window sont référencées comme des <bf>frames</bf>
dans les termes d'Emacs.
</sect2>

<sect2>Frames 

<p>Dans Emacs, une <bf>frame</bf> est une fenêtre X-Window séparée
dans laquelle un bufer d'Emacs est affiché. Mais les deux sont une
partie de la même session d'Emacs. L'attitude est un peu la même que
celle d'ouvrir plusieurs fenêtres d'Emacs lorsque vous tapez Alt+N.
</sect2>
</sect1>
<sect1>Les commandes de bases au clavier

<p>Cette section couvre les bases de la frappe au clavier pour
Emacs. Comme tous les éditeurs puissant, tout ce qui peut être fait
avec Emacs n'est qu'a quelques touches plus loin.  <p>Si vous etes un
utilisateur de <tt>vi</tt>, la notion d'utilisez les
touches<tt>k,j,l,h</tt> pour remonter ou descendre d'une ligne,
avancer ou reculer sur celle-ci vous a surement pris un peu de
temps. En fait cela vous a surement pris quelques heures pour y être
habitué, à pouvoir vous déplacer normalement dans un fichier en
utilisant les différentes combinaisons de touches disponibles dans
<tt>vi</tt>.  <p> Emacs est différent. Il existe différentes
combinaisons et commandes à apprendre. Comme <tt>vi</tt>, vous aurez
uniquement à maitriser les commandes de bases pour pouvoir effectuer
quasiment tous les travaux. Alors, au fil du temps, vous pourrez
continer tranquillement l'apprentissage et trouver de meilleures voies
pour arriver à vos fins.

<sect2>Les touches de commandes(Meta, Esc, Control, and Alt) 

<p>Comme vous allez bientot l'apprendre, Emacs fait une énorme
utilisation des combinaisons des touches multiples. Etant donné que ce
n'est pas un éditeur possédant différents modes comme <tt>vi</tt>,
vous n'aurez pas a penser en terme de mode de commande ou de mode
d'édition avant de pouvoir bouger le curseur ou d'éxécuter une
commande. A la place, vous aurez juste à presser la bonne combinaison
de touches et Emacs fera ce que vous lui aura demandé(normalement
:-)).  <p>Les touches qu'Emacs utilise les plus sont le plus souvent
les touches Control, référencée dans la documentation commme
<tt>C</tt> et la touche Meta <tt>M</tt>. Comme peu d'ordinateur
possède un clavier possédant cette touche, il faudra substituer à
cette touche la touche Escape <tt>Esc</tt> ou la touche Alternate
<tt>Alt</tt>. Dans la plupart des configurations les touches Esc et
Alt font la même chose.  <p>Donc lorsque vous verez une référence dans
n'importe quelles documentation sur Emacs à <tt>C-x f</tt> cela
signifie ``appuyez sur control-x et ensuite f``. Et si vous voyez un
référence à quelque chose de la forme <tt>M-x shell</tt> cela signifie
``appuyez sur alt-x et tapez le mot shell``.  <p>Une commande trés
utile pour les débutants est la commande <tt>M-x apropos</tt> ou la
commande <tt>C-h a</tt>. apropos cherchera dans la documentation Emacs
en ligne de toutes les fonctions comportant l'expression régulière que
vous tapé. C'est la manière la plus simple de découvrir toutes les
commandes relatives aux frames. Tapez simplement <tt>C-h a</tt> et
puis <tt>frame</tt>
</sect2>

<sect2>Se déplacer dans un Buffer 

<p>Maintenant que vous savez ce que signifie toutes ces abbréviations
fantaisistes signifient, voici la liste des commandes les plus
populaires pour se déplacer dans un buffer.
<verb>
Commandes
Clavier     Action
-----------------------------------
C-p         Monter d'une ligne
C-n         Descendre d'une ligne
C-f         Avancer d'un caractére
C-b         Reculer d'un caractère
C-a         Début de ligne       
C-e         Fin de ligne
C-v         Descendre d'une page
M-v         Monter d'une page
M-f         Avancer d'un mot
M-b         Reculer d'un mot
M-<         Debut du buffer
M->         Fin du buffer
C-g         Finir l'opération courante
-----------------------------------
</verb>
<p>Et, comme vous pouviez vous y attendre, les flèches de direction
fonctionnent comme vous vous l'esperiez. Votre touche
<tt>Backspace</tt> peut-être pas. Mais c'est une autre histoire.
</sect2>

<sect2>Commandes Principales 

q<p>Bon, maintenant que vous savez vous déplacer dans un buffer, qu'en
est-il d'ouvrir et de fermer des fichiers, d'effectuer des
recherches. Voici les commandes de base.  <p>Avant de passer à ces
commandes, je ferais le brievement le point sur son fonctionnement.
<p>Toutes ces ``commandes claviers`` dans Emacs (celles avec <tt>M-x
qqle chose</tt> ou <tt>C-qqle chose</tt>) ne sont juste que des
raccourcis vers des fonctions internes a Emacs. Vous pouvez les
appeler aussi en tapant <tt>M-x nomdelafonction</tt> et en appuyant
sur <tt>Entrée</tt>. Vous pouvez aussi utiliser le raccourci clavier
de cette fonction (si elle en a un).  <p>Par exemple, la fonction
Emacs qui sauvegarde le buffer vers le disque est appelée
<tt>save-buffer</tt>. Par défaut, elle est aussi reliée à <tt>C-x
C-s</tt>. Vous pouvez donc soit tapez <tt>M-x save-buffer</tt> et
obtenir le même résultat.  <p>Toutes les fonctions le plus communes
possèdent un raccourci clavier par défaut. En voici quelques exemples.

<verb>
Commandes
Clavier     Fonction           Description
-------------------------------------------------------------------
C-x C-s     save-buffer        Sauvegarde le buffer courant sur le disque
C-x u       undo               Annule la commande précédente
C-c C-f     find-file          Ouvre un fichier
C-s         isearch-forward    Recherche en avancant une chaine de caractère
C-r         isearch-backward   Recherche en reculant une chaine de caractère
            replace-string     Recherche et remplace une chaine de caractère
            replace-regexp     Recherche et remplace une chaine de caractère en utilisant regexp
C-h t       help-with-tutorial Utilisation du tutorial
C-h f       describe-function  Affiche l'aide pour une fonction
C-h v       describe-variable  Affiche l'aide pour une variable
C-h x       describe-key       Affiche le comportement d'une combinaison de touches
C-h a       apropos            Recherche l'aide pour string/regexp
C-h F       view-emacs-FAQ     Affiche la FAQ d'Emacs
C-h i       info               Affiche la documentation d'Emacs
C-x r m     bookmark-set       Configure un signet. Utile dans les recherches.
C-x r b     bookmark-jump      Déplacement vers un signet.
-------------------------------------------------------------------
</verb>
<p>Comme vous utiliserez beaucoup de ces fonctions, vous remarquerer
que beaucoup vous demanderons quelque chose. Cela aura toujours
rapport avec le mini-buffer. C'est similaire d'utiliser la commande
<tt>:</tt> dans <tt>vi</tt> ou dans la plupart des commandes que vous
utilisez avec votre shell favori.  <p>Emacs possède des centaines de
fonctions de base. La liste au dessus n'est qu'un trés petit exemple
de ce que j'utilise régulièrement. Voyez la documentation en ligne
pour une liste plus complète des fonctions disponible et une
documentation complète sur ce qui est mentionné au dessus.
</sect2>

<sect2>La Complétion par la touche Tab 

<p>Comme la plupart des shells unix (bash, csh, tsch, ...) Emacs offre
la possibilité d'utiliser la complétion grace à la touche
<tt>Tab</tt>. En fait, la commande de complétion du <tt>bash</tt> a
été modifié après celle d'Emacs, donc si vous utilisez cette
possibilité dans <tt>bash</tt> vous serez chez vous.  <p>Pour exemple,
essayer <tt>M-x search</tt> et appuyez sur <tt>Tab</tt>. Emacs
ajoutera un trait d'union pour indiquer qu'il existe plusieurs
possibilitées mais qu'elles possèdent toutes un trait d'union comme
prochain caractère. Tapez la touche <tt>Tab</tt> une fois de plus pour
qu'Emacs affiche les suites possibles dans lesquelles vous pourrez
choisir. Prenez note du fait qu'il fait cela dans une nouvelle
fenêtre: une contient le buffer courant que vous éditer en ce moment,
l'autre contient la selection des complétions possibles pour
``search-``. Vous pourrez alors appuyer sur <tt>C-g</tt> pour sortir
du processus de selection et fermer cette nouvelle fenêtre.
</sect2>
</sect1>
<sect1>Tutorials, Aides, &amp Informations 

<p>Emacs est installé avec un tutorial en ligne qui vous aidera à
utiliser les fonctiones d'édition de base et les fonctions que tout le
monde doit connaitre. Il explique aussi comment utiliser les autres
aides d'Emacs.  <p>Je vous recommande vraiment de passer un peu de
temps a travers ce tutorial si vous pensez à faire un serieux effort
pour apprendre Emacs. Comme indiqué dans la table plus haut, vous
pouvez entrer dans le tutorial par <tt>C-h t</tt>. Le tutorial est
dirigé est ciblé pour les personnes qui commencent tout juste avec
Emacs.  <p>Si vous lancer Emacs sous X, Vous verez que le menu le plus
en haut à droite est labelé Help (Aide). Lorsque vous explorerez le
menu, vous verez que certaines rubriques possèdent des raccourcis et
ceux ci sont listés dans la partie droite du menu.  <p>Enfin, pour
voir le volume de documentation disponible avec Emacs, vous pouvez
essayer <tt>M-x info</tt> ou <tt>C-h> i</tt> qui lancera Info, le
navigateur dans la documentation d'Emacs.
</sect1>
</sect>

<!-- ********************************************* --> 
<sect>Les modes d'Emacs 

<p>Les modes d'Emacs proposent différentes caractéristiques et
possibilités qui peuvent être activée(ou configurée, bien sur) pour
être utilisée dans différentes circonstances. Ces modes aident a
transformer l'éditeur (Emacs) pour en faire un outil utilisable autant
pour écrire une documentation, programmer dans différents langages (C,
C++, Perl, Java, et bien d'autres), créer une page Web, envoyer des
emails, lire des news, garder une traces des ?appointements??, et même
jouer.  <p>Les modes d'Emacs sont simplement des librairies de code
Lisp qui étendent, modifient, améliorent Emacs d'une certaine manière.

<sect1>Modes majeur vs. modes mineur 

<p>Il existe deux types de modes différents disponible: le mode majeur
et le mode mineur. La distinction n'est pas facile à voir sans avoir
utilisé certains de ces modes, mais tracons en les grands traits.
<p>Seul un mode majeur peut être actif à un instant donné. Les modes
majeur sont des modes spécifiques à un langage, ou à une tache, tandis
que les modes mineurs sont des petits utilitaires moins spécifique qui
peuvent être utilisée avec nombre de taches différentes.  <p>Cela
ressemble à un résumé, donc voici un exemple. Il existe un que
j'utilise assez souvent lorsque j'écris en format texte brut. Ce mode
est appelé <tt>text-mode</tt>. Ce mode a été crée pour écrire du texte
brut comme par exemple un fichier README. Il reconnait les mots et les
paragraphes et normalement fait ce que je veux lorsque j'utilise les
touches de direction standard

<p>Quand j'écris un texte qui sera utilisé par d'autres personnes, je
veux courament qu'il ait un aspect correct. Il doit être correctement
cassé, etc... Pour activer le cassage du texte, je met en place le
mode mineur <tt>auto-fill</tt> Ce mode essaye de faire les bons choix
quand je tape et que je valide à la fin d'une ligne. Le fait est
qu'étant donné que c'est un mode mineur, on peut l'utiliser avec
beaucoup de mode majeur différents. Mes notions de bon choix à
effectuer quand j'atteind la fin d'une ligne sont différentes que je
soit dans le cas où je suis en mode texte <tt>text-mode</tt> du cas où
je suis en java <tt>java-mode</tt> par exemple.Je ne veux pas que mon
code java soit cassé comme un texte anglais. Mais je <em>veux</em> que
les commentaires de mon code Java soit cassé. Le mode
<tt>autofill</tt> est assez bon pour deviner quoi faire.

<p> Les auteurs des différents mode d'emacs ont fait du bon travail en
implémentant les caractéristiques mineures devant être dans des modes
mineurs dans ces mêmes modes mineurs!

<p>Si vous regardez la composition d'un écran d'Emacs, vous
remarquerez que le mode ligne identifie le mode dans lequel se situe
Emacs. Dans ce cas c'est le mode qui se nomme Lisp Interaction, c'est
à dire le mode par défault. Il est réelement utile seulement lors de
la frappe de code Lisp. (Mais puisque Emacs est écris en Lisp,
pourquoi pas ?)
</sect1>

<sect1>Les Modes de Programmations

<p>D'abord et avant tout, Emacs a été concu par des programmeurs, pour
des programmeurs (NdT: et des traducteurs...). Il existe des modes de
trés grande qualité disponible pour chaqu'un des langages de
programmation auquel vous pouvez pensez (et même d'autres moins
populaires). Je ne peux que décrire brievement quelqu'uns d'entre eux
ici.  La plupart des modes de programmations partagent certaines
caractéristiques. Communément, Il font la plupart des choses
suivantes:

<itemize>
<item>Procure le surlignement par la couleur pour le langage.
<item>Procure une identation automatique et le formattage du code pour le langage.
<item>procure une aide contextuelle (langage) sensitive.
<item>Une interface automatique avec votre debogger.
<item>Ajoute un menu spécifique à votre langage sur la barre de menu.

</itemize>
<p>En plus, il existe des modes non spécifiques à un langage qui aide
à la réalisation de tâches commune à plusieurs langages. Ces tâches
sont par exemple l'interfacage avec un contrôleur de version (RCS,CVS)
, l'ajout automatique de commentaires, la création de makefile, la
mise à jour des fichiers de changement(ChangeLog), etc...

<p>Quand vous ajouter tout ces modes ensembles, et considérer la
maturité et la stabilité du code d'Emacs, vous pouvez le comparer
d'une manière plaisante à des applications IDE(Intergrated
Developpement Environnement) pour des langages comme C++ et Java. Et,
en plus, il est gratuit/libre.  

<sect2>C/C++/Java

<p>A cause de leur syntaxte, le C, le C++ et le java sont assez
simiaires, il existe donc un seul mode majeur pour gérer les trois
langages (comme l'objective-C et l'IDL). C'est un package trés mature
et complet et il est inclu dans la distribution d'Emacs. Ce mode est
nommé <tt>cc-mode</tt> ou <tt>CC Mode</tt> <p>Pour plus de détails, ou
pour télécharger une nouvelle version, aller à <htmlurl
url="http://www.python.org/emacs/"
name="http://www.python.org/emacs/">.

</sect2>

<sect2>Perl 

<p>Il existe véritablement deux modes pour éditer du code Perl dans
Emacs. Le premier est nommé <tt>perl-mode</tt> (comme vous pouviez
l'éspèrer, et le second se nomme <tt>cperl-mode</tt>. Je n'ai pas de
bonnes raisons pour lesquelles il existe deux modes (la documentation
ne le dit pas, mais il semblerais que <tt>perl-mode</tt> soit le mode
original pour éditer du code Perl dans Emacs. il semble avoir moins de
possibilitées que <tt>cperl-mode</tt> et la reconnaisance de certaines
possibilitées étranges du langage manque.  <p>Personnalement,
j'utilise et je recommande <tt>cperl-mode</tt> qui semble être mieux
maintenu et possèdent toutes les caractéristiques que je demande. Vous
pouvez trouver la dernière version ici: <htmlurl
url="ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs"
name="ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs">.

<p>Mais ne prenez pas mes mots comme paroles d'évangiles: essayez les
deux et prenez celui qui vous convient le mieux.
</sect2>

<sect2>Python

<p>Python(un autre langage de script trés populaire possède aussi un
mode Emacs. Pour autant que je puisse dire, il n'est pas distribué
avec GNU Emacs, mais est distribué avec XEmacs. Il fonctionne malgré
tout assez bien avec les deux éditeurs.

<p>Vous pouvez obtenir le <tt>python-mode</tt> à partir du site web
officiel de Python <htmlurl
url="http://www.python.org/emacs/python-mode/"
name="http://www.python.org/emacs/python-mode/">.

</sect2>

<sect2>Les autres

<p>Il existe beaucoup d'autres modes d'éditions disponibles pour aider
les programmeurs. De tel mode vous aideront à executer des tâches
comme :
<itemize>

<item>Shell Scripts (Bash, sh, ksh, csh, ...)
<item>Awk, Sed, Tcl, ...
<item>Makefiles
<item>Change Logs
<item>Documentation
<item>Deboggage
</itemize>

<p>Et bien plus. Voyez la dernière section de ce document pour plus
d'informations pour trouver d'autres modes et des ajouts.

</sect2>

</sect1>

<sect1>Authoring

<p>Les modes d'Emacs <tt>ne</tt> sont <tt>pas</tt> limité aux seuls
développeurs. Les personnes écrivant de la documentation peuvent
bénéficier d'un vaste ensemble de modes Emacs.

<sect2>Correction Orthographique (mode <tt>ispell</tt>)

<p>Les auteurs de beaucoup de type de document on toujours besoin de
correction orthographique. Si vous avez <bf>GNU ispell </bf>, vous
pouvez taper <tt>M-x ispell</tt> et corriger le buffer courant. Si
ispell trouve des mots qu'il ne connait pas, it affichera la liste des
remplacements possible et vous laissera en choisir un (ou aucun) de
ceux-ci. Il est équivalent à bien des outils de correction
orthographique de logiciel non-libre.

</sect2>

<sect2>HTML (mode <tt>html-helper</tt>)

<p>Si vous vous retrouver à écrire des fichiers en HTML une fois (et
même beaucoup) vous voudrez peut-être tester
<tt>html-helper-mode</tt>. Il est disponible à l'adresse <htmlurl
url="http://www.santafe.edu/~nelson/tools/"
name="http://www.santafe.edu/~nelson/tools/"> avec une documentation.

<p>Comme son nom le suggère, <tt>html-helper-mode</tt> offre beaucoup
de fonctions pour aider ceux qui écrivent du code HTML à la main, à
l'ancienne mode.

</sect2>

<sect2>TeX (<tt>tex-mode</tt>)

<p>Lorsque vous écrivez des documents en TeX, il est souvent utile
d'obtenir Emacs certains surlignage ou coloration pour les <tt>/</tt>,
les accolades, et d'autres caractères. <tt>tex-mode</tt> s'occupera de
cela pour vous.

<p>Bien que je n'écrivent plus en TeX directement maintenant, lorsque
je le faisais ce mode a été assez utile en transformant mon source Tex
en un source un peu plus lisible.

</sect2>

<sect2>SGML (<tt>sgml-mode</tt>)

<p>Le document que vous êtes en train de lire a été écris en SGML (et
probablement converti vers le format dans lesquel vous êtes en train
de lire).  <tt>sgml-mode</tt> procure toute les bases pour un document
SGML: validation, surlignage, étiquetage avant/arrière, et bien
d'autre choses. C'est une des parties standard d'Emacs.

</sect2>

</sect1>

<sect1>Autres Modes 

<p> Bien sur, il existe des tas d'autres modes pratique pour rendre la
vie facile. Voici juste un panel des plus populaire.

<sect2>Le Contrôle de Version (mode <tt>vc</tt>)

<p> Le mode <tt>vc</tt> s'interface avec les plus populaires
contrôleurs de version(RCS, SCCS, CVS) pour simplifier le contrôle des
fichiers, contrôler les release, etc... C'est un mode standard
d'Emacs, documenté dans la doc d'Emacs.

</sect2>

<sect2>Le Mode Shell 

<p> Pourquoi passer vers une autre fenêtre X, ou une console
virtuelle, juste pour lancer quelques commandes? Faites le a partir
d'Emacs, et garder vous des problèmes. <tt>:-)</tt>

<p><tt>M-x shell</tt> lancera un shell à l'interieur d'un buffer
Emacs. Vous pourrez effectuer la plupart des tâches que vous effectuer
sur un shell classique (a par des programmes tournant en plein écran
tel que <tt>vi</tt> ou <tt>pine</tt> car Emacs dialogue avec votre
shell réel dernière vous...  <p>Cela fait aussi partie des standard
d'Emacs, donc vous pourrez le trouver documenté dans la doc d'Emacs.
</sect2>

<sect2>Telnet et FTP 

<p>Pourquoi passer vers une autre fenêtre ou une console virtuelle
juste pour lancer telnet ou ftp? Faites le avec Emacs, et gagner du
temps. (Vous avez remarqué la ressemblance ?)  <p>Comme vous pouvez
lancer un shell avec Emacs, vous pouvez aussi lancer telnet et
ftp. Essayez <tt>M-x telnet</tt> ou <tt>M-x ftp</tt> pour en faire
l'experience. voyez la documentation pour tous les détails.
</sect2>

<sect2>Pages Man 

<p>Pourquoi passer vers une autre fenêtre ou une console virtuelle
juste pour lire une page man? Faites le avec Emacs, et gagner du
temps. (Promis, c'est fini.)

<p>Comme vous pouvez lancer un shell avec Emacs, vous pouvez aussi
lire les pages de manuel. Essayez <tt>M-x man</tt> pour en faire
l'experience. voyez la documentation pour tous les détails.
</sect2>

<sect2>Ange-FTP

<p>Pour citer la documentation d'<tt>ange-ftp</tt>
<quote>
Ce package tente de rendre accessible des fichiers et des répertoires
en utilisant FTP à l'intérieur d'Emacs aussi transparent que possible.
Un sous ensemble du système de gestion de fichier a été étendu pour
utiliser FTP.
</quote>

<p>Cela signifie que vous pouvez traiter des fichiers de machines
distantes comme si elle étaient situé sur votre ordinateur. Donc si
vous devez éditer un fichier sur différents ordinateurs, demander à
Emacs de l'ouvrir (en utilisant une syntaxte différente pour le
chemin) et vous occuper des détails de connection et de récuperer le
fichier. Vous pourrez alors sauver le fichier via <tt>C-x C-s</tt>, et
<tt>ange-ftp</tt> interceptera la sauvegarde et écrira le fichier sur
la machine distante.  <p>La syntaxte différente pour le chemin se
présente ainsi. Un fichier nommé "monfichier", dans un répertoire
"utilisateur", sur une machine nommée :"ma.machine.org" peut-être
obtenu en ouvrant le fichier (<tt>C-x f</tt>)

<quote><tt>/utilisateur@ma.machine.org:~utilisateur/monfichier</tt></quote>

<p>Etant un package standard de la distribution, vous pouvez aussi
consulter la documentation pour tous les détails.

<p>Merci à Etienne Grossmann (<htmlurl name =
"etienne@anonimo.isr.ist.utl.pt" url =
"mailto:etienne@anonimo.isr.ist.utl.pt">) pour l'exemple ci-dessus.

</sect2>

</sect1>

</sect>

<!-- ********************************************* -->

<sect>Customiser Emacs <label id="customizing_emacs">

<p>Toutes les customisations d'Emacs peuvent virtuellement être effectué
par du code Lisp. Vous pouvez modifier des variables qui influence la
manière d'agir d'Emacs, ou vous pouvez ajouter de nouvelles fonctions
à Emacs (ou effacer des fonction existantes, en les remplacant par les
vôtres).

<sect1>Customisation Temporaire 

<p>Lorsque vous vous habituerez à customiser Emacs, vous voudrez
probablement le faire d'une manière temporaire. Si vous faites quelque
chose de vraiment mauvais, vous pourrez sortir avec <tt>C-x C-c</tt>
et le relancer. Une fois que vous aurez trouvé les changements qui
vous plaisent, vous voudrez les rendre permanent, vous pourrez alors
les ajouter à votre fichier <tt>.emacs</tt> pour qu'ils soient effectif à
chaque lancement d'Emacs. Nous en parlerons dans la prochaine section.


<sect2>Assignements de Variable

<p>La plus simple des customisations à faire est de changer la valeur
d'une variable d'Emacs. Le code pour effectuer cette action ressemble
à celui-ci:
<verb>
(setq nom-variable nouvelle-valeur)
</verb>

<p>Où <tt>nom-variable</tt> est le nom de la variable et
<tt>nouvelle-valeur</tt>est la valeur que vous voulez affecter.  (En
langage Lisp, vous assignez une variable à une valeur.) La fonction
<tt>setq</tt> est analogue à un opérateur d'assignement(courament
<tt>=</tt>) dans d'autres langages de programmations.

<p><bf>NOTE:</bf> Je passe sur beaucoup de détail dans un soucis de
simplicité. Vous me verez moi, ou d'autres utiliser la fonction Lisp
<tt>set</tt> et même <tt>setq-default</tt>.  Si vous êtes vraiment
curieux, aller voir de quoi il retourne dans la réference Lisp
d'Emacs.

<p>Regarder cette ligne de mon fichier <tt>.emacs</tt>.
<verb>
(setq-default transient-mark-mode t)
</verb>

<p>La Variable <tt>transient-mark-mode</tt> contrôle si une region
doit être surligné ou lorsqu'on la marque. Dans beaucoup d'application
graphique, lorsque vous cliquez et déplacez le pointeur pour
selectionner une partie du texte, elle devient surlignée en mode
inverse, ou dans une autre couleur. Emacs effectuera de même lorsque la
variable <tt>transient-mark-mode</tt> aura une valeur non nulle
d'affectée.

<p><em>QUELLE</em> valeur?  <p>D'accord. Petite digression. Beaucoup
de langage de programmation ont des notions de valeurs vrai/fausse
(true/false). En C/C++ une valeur est considéré vrai (true) si elle
possède une valuer non nulle. En Perl, une valeur non nulle ou
différentes de zéro est vrai (true). En Lisp, la même idée s'applique,
mais avec des noms et des symboles différents.  <p>Vrai (True) est
courament écris comme ceci <tt>t</tt> et faux (False) (ou Null) est
écrit comme <tt>nil</tt>.  Comme d'autres language, bien sur, toute
valeur non nulle est considéré comme vrai.

<p>Pour donner la description complète de ce que fait
<tt>transient-mark-mode</tt>, vous pouvez utilisez l'aide en-ligne.
Tapez <tt>C-h v</tt> ou <tt>M-x describe-variable</tt> puis
<tt>transient-mark-mode</tt>.  Si vous êtes fainéant comme moi, vous
pourrez tirez avantage de la complétion des noms de variables en
utilisant la touche <tt>Tab</tt> Tapez juste les premières lettres et
appuyez sur la touche <tt>Tab</tt>. Si vous avez tapé assez de lettre
pour qu'Emacs puisse l'identifier, vous verez apparaitre le mot entier
complété pour vous.  <p>Une autre variable que l'on utilise souvent
est <tt>fill-column</tt>.  Si vous dites à Emacs la largeur de
l'écran, il effectura la casse des lignes (et <tt>auto-fill-mode</tt>
respecte cette valeur).  Pour affecter une valeur absurde vous pouvez
tapez:
<verb>
(setq fill-column 20)
</verb>

<p>Mais cela ne fait rien maintenant. Vous devrez demander à Emacs
d'<bf>évaluer</bf> l'expression que vous avez tapé.  Pour l'évaluer,
placer le point (le curseur) à la fin de l'expression et tapez <tt>C-x
C-e</tt>, qui appelera la fonction <tt>eval-last-sexp</tt>.  Lorsque
vous ferez cela, notez que <tt>20</tt> (ou ce que vous avez tapé) est
renvoyé dans la mini-buffer en bas de l'écran. C'est la valeur de
retour de l'expression que vous avez évalué.

<p>Juste pour montrer que cela marche, taper une phrase ou deux. Si
vous avez le mode <tt>auto-fill-mode</tt> activé (probablement pas)
Vous remarquerez que le texte est cassé à la colonne 20.  Autrement
après avoir tapé quelque chose, tapez <tt>M-q</tt> qui appelera la
fonction <tt>fill-paragraph</tt>.  Il effectura alors la casse du
paragraphe.
</sect2>

<sect2> Associations de fichiers 

<p>Vous pouvez configurer Emacs pour qu'il effectue des tâches
automatiques lorsque vous ouvrez des fichiers d'un certain type (comme
certaines interfaces graphiques lance une application lorsque l'on
clique sur un fichier précis).  Par exemple, Je veux qu'Emacs passe en
mode <tt>text-mode</tt> chaque fois que j'ouvre un fichier avec
l'extension <tt>.txt</tt>. Bon, il le fait déjà. <tt>:-)</tt> Donc
faisont le passer en mode <tt>text-mode</tt> lorsqu'il ouvre un
fichier "README".

<verb>
(setq auto-mode-alist (cons '("README" . text-mode) auto-mode-alist))
</verb>

<p>Ouch?

<p>Sans plonger dans des flots de programmation Lisp que vous n'avez
pas besoin de connaitre (mais cela ne vous fera pas de mal d'en
apprendre plus), laisser juste vous expliquer que la variable
<tt>auto-mode-alist</tt> contien une liste de paires .  Chaque paires
contient une expression régulière et un nom de mode Emacs. Si dans un
fichier que vous ouvrez correspond à l'une des expressions régulières
(dans ce cas, la chaine <tt>README</tt>) Emacs lance automatiquement
le mode que vous avez spécifié.

<p>La syntaxte amusante ;-) au dessus est du au fait que nous
rajoutons une paire à ce mode. Vous ne voulez surement pas juste
assigner à <tt>auto-mode-alist</tt> une valeur sans vous assurer que
les valeurs contenues ne sont pas perdue.

<p>Et si vous voulez qu'Emacs passe dans le mode
<tt>html-helper-mode</tt> chaque fois que j'ouvre un fichier que se
termine par <tt>.html</tt> ou <tt>.htm</tt>, je n'ai qu'à ajouter à
mon fichier .emacs:

<verb>
(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist)) 
(setq auto-mode-alist (cons '("\\.htm$"  . html-helper-mode) auto-mode-alist))
</verb>

<p>Les possibilités sont vraiment sans fin.

</sect2>

</sect1>

<sect1>Utiliser un fichier <tt>.emacs</tt> 

<p>Après avoir passé quelque temps avec Emacs et avoir une idée de
base de ce que l'on peut customiser, vous voudrez probablement changer
quelques petites options de manière permanente.  (ou au moins jusqu'à
ce que vous ayez changé d'avis. Si vous utiliser Emacs tout les jours,
vous trouverez que votre fichier .emacs grossis de plus en plus. C'est
bon puisque cela signifie que vous avez compris comment faire
fonctionner Emacs de la manière dont <bf>vous</bf> voulez. C'est
triste de voir que peu de programmes permettent cette approche.

<p>Dans le cas ou vous n'auriez pas encore deviné, chaque fois que
vous lancez Emacs, il cherche dans le fichier <tt>.emacs</tt> dans
votre répertoire home.  Votre fichier <tt>.emacs</tt> est le fichier
où tout le code que vous voulez lancer automatiquement et toutes
sortes de customisations que nous avons vu précedement.

<p>Un autre exemple de mon fichier <tt>.emacs</tt>:

<verb>
(setq inhibit-startup-message t)
</verb>

<p>La varialbe <tt>inhibit-startup-message</tt> contrôle si Emacs doit
afficher le message de bienvenu ou non. Après un certain temps, je
devenais malade en le voyant ( car je savais où trouver l'aide et
autres trucs) donc j'ai cherché une manière de le désactiver.  <p>
Comme exercice, essayer de créer un fichier <tt>.emacs</tt> par vous
même et en ajoutant cette ligne. Sortez alors d'Emacs, et relancer le.
Vous ne devriez plus voir le message de bienvenue.

<p>Souvent, lorsque vous lisez quelque chose à propos d'un mode
Emacs(ou d'un package), la documentation suggèrera d'ajouter des
lignes à votre fichier <tt>.emacs</tt> pour pouvoir faire fonctionner
le package ou le mode d'une manière précise.

<p>La FAQ GNU Emacs (<tt>C-h F</tt>) contient quelques unes des
options concernant le fichier <tt>.emacs</tt> que vous trouverez
peut-être utile.

</sect1>

<sect1>Le Package Customisé.

<p>Au fur et à mesure du développement d'Emacs en popularité et son
évolution, quelques un ont dis "il y doit y avoie une meilleure
manière de permettre aux novices de customiser Emacs."  Et
<tt>customize</tt> était né.

<p>Customize procure aux utilisateurs une manière plus intuitive de configurer des parties d'Emacs. Pour l'essayez, visitez le sous-menu <tt>Customize</tt> de votre menu <tt>Help</tt> , ou tapez <tt>M-x customize</tt>.

<p>Customize groupe la configuration dans des groupes logiques, tels que ``Editing'', ``Programming'', ``Files'', et ainsi de suite
Quelques groupes contiennent des sous-groupes.

<p>Si vous effectuer des changements en utilisant l'interface <tt>Customize</tt>, Emacs sauvegardera vos changements dans votre fichier <tt>.emacs</tt> C'est assez pratique, car cle code ajouté peut-être facilement inspecté (et changé) 

<p><em>Je n'utilise pas l'interface <tt>Customize</tt>, je ne peut donc pas vous en dire plus.</em>.

</sect1>

<sect1>L'affichage X Windows 

<p>Comme n'importe quelle application X, Emacs respecte vos ressources
X. Cela signifie que vous pouvez contrôler les couleurs initiales,
(geometrie), et d'autres choses spécifiques que vous pouvez faire avec
un <tt>xterm</tt> ou <tt>nxterm</tt>, ou autre.

<p>Voici une partie utile de mon fichier <tt>~/.Xdefaults</tt>:

<verb>
emacs*Background: DarkSlateGray
emacs*Foreground: Wheat
emacs*pointerColor: Orchid
emacs*cursorColor: Orchid
emacs*bitmapIcon: on
emacs*font: fixed
emacs.geometry: 80x25
</verb>

<p>Voyez les pages man <tt>X</tt>pour plus de détails à propos des ressources X.

<p>Chris Gray (<htmlurl name="cgray4@po-box.mcgill.ca" url="mailto:cgray4@po-box.mcgill.ca">) dis aussi:

<quote>Dans la debian, le fichier <tt>~/.Xdefaults</tt> ne semble pas
être utilisé.  Néanmoins, les utilisateurs de la debian peuvent mettre
ce que vous avez mis plus haut dans le fichier
<tt>/etc/X11/Xresources/emacs</tt> et ils auront toutes les belles
couleurs comme si ils utilisaient une RedHat.</quote>

</sect>

<!-- ********************************************* -->

<sect>Packages Populaires <label id="popular_packages"> 

<p>En ajout de tout les différents modes disponibles d'Emacs, il
existe aussi beaucoup de package que l'on peut ajouter. Je les appelle
package car ce sont plus que des nouveaux modes. Ils proposent souvent
des possiblitées étendue, ou sont trop gros pour être nommé modes, car
cela ne leur rendrais pas justice. Dans d'autres cas, ce sont des
logiciels qui étendent ou integrent d'autres modes d'Emacs et des
packages. La distinction n'est pas totalement claire, mais c'est
assez.


<sect1>VM (Mail)

<p>Pour citer la  VM FAQ:

<quote>
VM (View Mail) est un sous-système d'Emacs qui permet de lire des
mails et de les manipuler à l'intérieur d'Emacs.  Des commandes
existent pour effectuer toutes les actiosn classiques d'un client
Mail, comme la génération de réponse, la sauvegarde dans un
répertoire, l'effacement de message, etc ... Il existe aussi d'autres
commandes avancées qui effectue des tâches comme la création ou
l'éclatement de sommaire/résumé, la retransmission (Forward), et
l'organisation de la présentation des messages suivant différents
critères.
</quote>

<p>Quand J'ai commencé à utilisez Emacs, J'ai essayé VM pendant un
certain temps. J'ai trouvé que c'était le grand remplacant pour Pone,
Elm, ou d'autres client Mail. Mais je n'avais pas envie d'utiliser de
programme distinct pour consulter Mail et News.  VM est activement
développé et assez bien supporté aujourd'hui.  <p>Il est disponible
ici: <htmlurl url="http://www.wonderworks.com/vm/"
name="http://www.wonderworks.com/vm/">.

</sect1>

<sect1>Gnus (Mail et News)

<p>Pour citer le manuel GNUS:

<quote>
Gnus est un laboratoire de lecture des messages. Il vous laissera voir n'importe quoi comme étant un groupe de discussion. Vous pouvez lire des mails, naviguer dans vos répertoires, faire du ftp, vous pouvez même lire des messages des groupes de discussion!
</quote>

<quote>
Gnus essaye de permettre aux utilisateurs de lire des news de la
manière dont Emacs permet aux utilisateurs d'éditer un texte.  Gnus ne
fixe aucune limite à ce que les utilisateur peuvent être capable de
faire.  Les utilisateurs sont encouragés à étendre Gnus pour qu'il se
comporte comme l'utilisateur le veut. Un programme <tt>ne</tt> doit
<tt>pas</tt> contrôler les utilisateurs; les utilisateurs doivent
permttre de faire se qu'ils veulent en l'utilisant (ou en abusant) le
programme.
</quote>

<p>GNUS est le programme que j'utilise en ce moment pour mes mails et mes news (comme je l'ai dis plus tôt).
GNUS est activement développé et trés bien supporté aujourd'hui..

<p>Il est disponible ici: <htmlurl url="http://www.gnus.org/"
name="http://www.gnus.org/">.

</sect1>

<sect1>BBDB (A rollodex)

<p>BBDB est une insidieuse base de donnée de type <tt>Big Brother</tt> 
un programme comme rolldex pour Emacs qui fonctionne avec la plupart des packages populaires de mails d'Emacs (Vm et GNUS inclus).

<p>Il est disponible ici: <htmlurl url="http://pweb.netcom.com/~simmonmt/bbdb/index.html" name="http://pweb.netcom.com/~simmonmt/bbdb/index.html">.

</sect1>

<sect1>AucTeX (another TeX mode)

<p>AucTeX est un autre mode pour éditer des fichiers TeX.

<p>Pour siter le site internet d'AucTeX:

<quote>
AUC TeX est un package extensible qui supporte l'écriture et le formatage des fichiers TeX pour la plupart des variantes d'Emacs. Beaucoup de package de macro sont disponible, tel que AMS TeX, LaTeX, and TeXinfo.
</quote>

<p>Il est disponible ici: <htmlurl url="http://sunsite.auc.dk/auctex/" name="http://sunsite.auc.dk/auctex/">.

</sect1>

</sect>

<!-- ********************************************* -->

<sect>Autres Resources <label id="Autres_ressources">

<p> Cette section concerne les livres, les sites Web, les groupes de
discussion, les mailings listes et d'autres lieux ou vous pourrez
trouver des informations à propos d'Emacs.

<sect1>Livres

<p>Il existe quelques bon livres disponibles pour apprendre Emacs. En
plus de cela, vous remarquerez que dans beaucoup de livres sur Linux
ou Unix vous avez un chapitre ou deux au sujet d'Emacs (et
<tt>vi</tt>)..

<sect2>Apprendre GNU Emacs

<p>Auteurs: Debra Cameron, Bill Rosenblatt, Eric S. Raymond 

<p>Editeur: O'Reilly &amp; Associates - <htmlurl
url="http://www.ora.com/" name="http://www.ora.com/">

<p>Vous pouvez l'acheter par Amazon.com via leur programme
d'association: <htmlurl
url="http://www.amazon.com/exec/obidos/ASIN/1565921526/jeremydzawodny"
name="http://www.amazon.com/exec/obidos/ASIN/1565921526/">

<p><bf>Commentaire:</bf> C'est probablement le meilleur livre pour
commencer. Après avoir lu le HOWTO,et et regardé la FAQ, ce livre vous
servira comme tutorial compréhensible et approchable.

</sect2>

<sect2>Ecrire des extensiosn GNU Emacs

<p>Auteur: Bob Glickstein

<p>Editeur: O'Reilly &amp; Associates - <htmlurl
url="http://www.ora.com/" name="http://www.ora.com/">

<p>Vous pouvez l'acheter par Amazon.com via leur programme
d'association: <htmlurl
url="http://www.amazon.com/exec/obidos/ASIN/1565921526/jeremydzawodny"
name="http://www.amazon.com/exec/obidos/ASIN/1565921526/">

<p><bf>Commentaire:</bf>Après avoir utilisé Emacs durant quelques
temps, et avoir décidé que vous aimeriez écrire votre propre mode, ou
peut-être essayer quelques customisations avancée, ce livre est fait
pour vous. Il ne prétend pas vous apprenne le Lisp, mais contient
quand même une courte introduction.
</sect2>

<sect2>Programmer avec le Lisp d'Emacs : Une Introduction

<p>Auteur: Robert J. Chassell

<p>Extrait du fichier README

<quote>
C'est une introduction elementaire pour programmer en Lisp Emacs, pour
les non programmeurs, et qui ne sont pas intéressé par la
programmation, mais qui veulent customiser ou étendre leur
environement de travail.
</quote>

<p>Vous pouvez récuperer le manual dans sa totalité via FTP anonyme à
partir du serveur GNU FTP: <htmlurl
url="ftp://prep.ai.mit.edu/gnu/emacs/"
name="ftp://prep.ai.mit.edu/gnu/emacs/">.

<p>Vous pouvez acheter une version imprimé par Amazon.com via leur
programme d'association: <htmlurl
url="http://www.amazon.com/exec/obidos/ASIN/1882114418/jeremydzawodny/"
name="http://www.amazon.com/exec/obidos/ASIN/1882114418/jeremydzawodny/">.

<p><bf>Commentaire:</bf> C'est un bon manuel d'introduction au Lisp
d'Emacs, même si vous n'êtes pas un programmeur confirmé.
</sect2>

<sect2>Le manuel de référence GNU Emacs Lisp

<p>Auteur: Richard Stallman

<p>Editeur: The Free Software Foundation - <htmlurl
url="http://www.fsf.org/" name="http://www.fsf.org/">


<p>Vous pouvez récuperer le manual dans sa totalité via FTP anonyme à
partir du serveur GNU FTP: <htmlurl
url="ftp://prep.ai.mit.edu/gnu/emacs/"
name="ftp://prep.ai.mit.edu/gnu/emacs/">.

<p><bf>Commentaire:</bf>C'est le guide ultime pour le langage de
programmation Lisp d'Emacs

</sect2>

</sect1>

<sect1>Sites Internet

<sect2>EMACSulation

<p>EMACSulation est une colonne écrite par Eric Marsden qui apparait
dans le magazine en-ligne Linux Gazette situé à<htmlurl
url="http://www.linuxgazette.com/"
name="http://www.linuxgazette.com/">.  La colonne écrite la plus
récente à ce jour est situé à <htmlurl
url="http://www.linuxgazette.com/issue39/marsden.html"
name="http://www.linuxgazette.com/issue39/marsden.html">. Regarder en
bas de l'article pour obtenir les colonnes précédentes.

</sect2>

</sect1>

<sect1>Groupes de discussions

<p>Rechercher dans votre fournisseur de news local les groupes de
discussion qui contiennent la chaine <tt>emacs</tt> et vous en
trouverez probablement quelques uns ... Voici ceux que mon serveur
supporte:

<itemize>
<item>comp.emacs
<item>comp.emacs.sources
<item>gnu.emacs
<item>gnu.emacs.bug
<item>gnu.emacs.help
<item>gnu.emacs.sources
</itemize>

</sect1>

<sect1>Listes de diffusions 

<p>La seule liste de diffusion dédiée à Emacs que je connaisse à
l'heure actuelle et la liste NT-Emacs. C'est une liste pour les
utilisateurs d'Emacs sur Micro$oft Windows. Voyez la FAQ NT-Emacs
<htmlurl url="http://www.cs.washington.edu/homes/voelker/ntemacs.html"
name="http://www.cs.washington.edu/homes/voelker/ntemacs.html"> pour
plus d'informations.

</sect1>

<sect1>Les archives Lisp Emacs

<p>Extrait du README des archives Lisp Emacs:

<quote>
Les archives Lisp Emacs sur ftp.cis.ohio-state.edu contiennent
différentes portions et packages du code de Lisp Emacs. Lisp Emacs est
le langage utilisé pour l'éditeur GNU Emacs publié par la FSF. Bien
que le code de Lisp Emacs soit inclut dans la distribution d'Emacs,
bon nombre de personne ont écrit des packages pour l'interfacer avec
d'autres systèmes, pour avoir un meilleur support de l'édition de leur
langage de programmation, pour ajouter des options, ou pour changer le
comportement par défault d'Emacs. La plupart du contenu de cette
archive a été écrit par des personnes(individuals) et distribué sur
internet par les listes de diffusions info-emacs, info-gnu-emacs, ou
des groupes de discussion tel que comp.emacs, gnu.emacs ou
gnu.emacs.sources.
</quote>

<p>Les archives sont disponibles via Ftp anonyme à l'adresse <htmlurl
url="ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/"
name="ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/">.

<p><bf>NOTE:</bf> Pour autant que je puisse dire, les archives Lisp
d'Emacs commencent à être périmées. J'ai vu seulement quelques
nouveaux package ou des mises à jour apparaitre, quoique je sais qu'il
en existe. Ils <tt>sont</tt> postés sur le groupe de discussion
<tt>comp.emacs.sources</tt>. (Corrigez moi si je me trompe.)

</sect1>

</sect>

<!-- ********************************************* -->

<sect>Crédits <label id="credits">

<p>Les personnes suivantes ont contribué au succés de ce document.

<itemize>

<item>Robert Vollmert <htmlurl name = "rvollmer@gmx.net"
url="mailto:rvollmer@gmx.net" >

<item>Larry Brasfield <htmlurl name = "larrybr@seanet.com"
url="mailto:larrybr@seanet.com">

<item>Etienne Grossmann <htmlurl name =
"etienne@anonimo.isr.ist.utl.pt" url =
"mailto:etienne@anonimo.isr.ist.utl.pt">

<item>Thomas Weinell <htmlurl name = "kf6mli@amsat.org" url =
"mailto:kf6mli@amsat.org">

<item>Adam C. Finnefrock <htmlurl name =
"adam@bigbro.biophys.cornell.edu" url =
"mailto:adam@bigbro.biophys.cornell.edu">

<item>Chris Gray <htmlurl name="cgray4@po-box.mcgill.ca"
url="mailto:cgray4@po-box.mcgill.ca">

<item>Robert J. Chassell <htmlurl name="bob@rattlesnake.com"
url="mailto:bob@rattlesnake.com">

<item>Isaac To <htmlurl name="kkto@csis.hku.hk"
url="mailto:kkto@csis.hku.hk">

<item>Matteo Valsasna <htmlurl name="valsasna@elet.polimi.it"
url="mailto:valsasna@elet.polimi.it">

<item>Tijs van Bakel <htmlurl name="smoke@casema.net"
url="mailto:smoke@casema.net">

</itemize>

</sect>

</article>