Tutorial de l'editeur Emacs (version 2.0)
-----------------------------------------

* LES BASES D'EMACS
-------------------

Utiliser Emacs ce n'est pas tres complique. Par contre, il est
indispensable de maitriser certains concepts de base avant de pouvoir
se lancer. Il faut savoir : 

        - declencher les fonctions Emacs via les raccourcis claviers 
          et/ou par leurs noms de fonctions;
        - utiliser la souris, deplacer le curseur, copier et coller 
          avec la souris; 
        - defaire la derniere commande ayant modifier le texte edite.
          Par exemple, si du texte a ete detruit par accident, il faut
          pouvoir annuler cette fausse manoeuvre et revenir a l'etat
          du buffer qui precedait l'accident;
        - la terminologie Emacs pour pouvoir utiliser l'aide en ligne;
        - quelques commandes utiles pour utiliser agreablement Emacs.


IMPORTANT :
Ne vous effrayez pas de trouver dans la suite de ce document beaucoup
de raccourcis clavier. En effet, quasiment toutes les commandes
correspondant a ces raccourcis sont accessible via les menus.
Ces raccourcis sont tres utiles pour les personnes qui connaisent bien
Emacs et qui veulent aller vite.

* ECRAN EMACS
-------------

                        Ecran Emacs :



 --------------------------------------------------------
 | Buffers  Files  Tools  Edit  Search Help             |  < BARRE DES
 --------------------------------------------------------    MENUS
 |  Le Lion et le Moucheron                             |
 |                                                      |
 | "Va-t'en, chetif insecte, excrement de la terre! "   |
 | C'est en ces mots que le Lion                        |  < TAMPON
 | Parlait un jour au Moucheron.                        |    FENETRE 1
 |                                                      |
 |                                                      |
 |                                                      |
 |                                                      |
 --------------------------------------------------------    BARRE D'ETAT
 |--**--Emacs: lion.txt     (Text Fill)--L5--All--------|  < DU TAMPON
 --------------------------------------------------------    FENETRE 1
 | ;; definition des raccourcis clavier                 |
 | (define-key global-map "\eg" 'goto-line)             |
 |                                                      |  < TAMPON
 |                                                      |    FENETRE 2
 |                                                      |
 |                                                      |
 --------------------------------------------------------    BARRE D'ETAT
 |------Emacs: .emacs       (Emacs-Lisp)--L1--All-------|  < DU TAMPON
 --------------------------------------------------------    FENETRE 2
 --------------------------------------------------------
 |                                                      |  < MINIBUFFER
 --------------------------------------------------------


* TERMINOLOGIE
--------------


Buffer, minibuffer, barre d'etat :

        Dans emacs, les tampons (buffers en anglais) servent pour
        afficher le texte. Un tampon est comme une image du fichier
        edite, et comme dans la plupart des editeurs, modifier le
        tampon ne modifie pas le fichier edite. Il faut sauver le
        tampon pour que le fichier soit change. Emacs nous indique que
        le tampon et le fichier sont identiques en placant au debut de
        la barre d'etat du tampon le signe ------, et qu'il sont
        differents en mettant le signe --**--. Dans le schema
        precedant, le tampon 1 a ete modifie par rapport au fichier
        qu'il edite, tandis que le tampon 2 non. A chaque fenetre
        correspond un tampon et une barre d'etat. La barre d'etat
        dispense des informations concernant son tampon : son nom, le
        numero de la ligne ou l'on se trouve, etc.
        Le minibuffer (en bas du schema) constitue un tampon special.
        C'est dans ce minibuffer que l'utilisateur communique
        generalement avec l'editeur Emacs. Le minibuffer ne possede
        pas de barre d'etat.


Raccourcis claviers, commandes :

        De nombreuses commandes Emacs sont liees a des sequences de
        touches particulieres. On symbolise ces raccourcis clavier
        (keybindings en anglais) ainsi : 

        C-<caractere>   
                signifie maintenir la touche CONTROL enfoncee pendant que
                vous tapez le caractere <caractere>.
                Par exemple pour "C-f" on comprendra : taper CONTROL,
                puis la touche f (tout en maintenant CONTROL enfoncee).
         M-<caractere>  
                signifie appuyer sur la touche ESC (ou META si vous 
                l'avez), la relacher, puis taper le caractere 
                <caractere>.
         C-g            
                Cette commande est semblable a la commande d'echappement
                <ESC> habituellement utilisee dans la plupart des
                programmes DOS. Elle permet d'annuler la commande en cours
		par exemple, si vous selectionner par erreur l'item
		"Open File" du menu et qu'emacs vous demande le nom du fichier
		a ouvrir, appuyer sur C-g.

        Pour effacer le caractere qui suit le curseur, on peut taper
        "C-d". Ce raccourci clavier est lie a la commande Emacs
        "delete-char" qui efface le caractere suivant le curseur. 
        Chaque raccourci appelle une certaine fonction Emacs.
        Pour savoir quelle fonction lance Emacs pour telle suite de
        touches, il suffit de taper "C-h k"  suivie de la combinaison 
        de touches.
         Exemple :
                "C-h k" "C-d"
        cela nous donne bien comme nom de fonction : delete-char
        
        Il existe un moyen d'executer une fonction dont on connait le
        nom : en tapant "M-x" suivi du nom de la fonction a
        executer. Dans notre exemple cela donne  :
                "M-x delete-char RETURN".
        Beaucoup de fonctions Emacs ne correspondent a aucune
        combinaison de touches. Pour executer ces fonctions, il faut
        obligatoirement utiliser "M-x <nom-de-la-fonction>".
        
        Remarque importante : Pour terminer une session Emacs, taper
                        C-x C-c (c'est-a-dire composer C-x, lachez
                        tout, puis tapez  C-c). 


Mode majeur, mode mineur (en anglais : major mode, minor mode) :

        Chaque tampon est dans un certain mode. Le mode determine le
        comportement de Emacs dans ce tampon. Par exemple il y a le
        mode "overwrite". Dans ce mode, le texte tape au clavier
        s'ecrit par dessus le texte qu'il y avait initialement dans
        le tampon.
	Remarque : Pour passer dans le mode "overwrite", il suffit
        d'enfoncer la touche "INS" ou "insert" de votre  clavier.

        Il y a des modes majeurs et des modes mineurs. Un tampon
        n'est que dans un certain mode majeur, mais par contre,
        peut-etre dans plusieurs modes mineurs. Entre les parentheses
        qui apparaissent dans la barre d'etat, on lit de gauche a
        droite : le nom du mode majeur, suivi des noms de tous
        les modes mineurs. Dans le schema, le tampon 1 est dans le mode
        majeur "Text" et dans le mode mineur "Fill".


Barre des menus :

        Dans la barre des menus vous trouverez des menus qui vous
        permettront de lancer facilement plus de commandes qu'il n'en
        est decrit ici. La comprehension de ces menus est aisee.


* TOUCHES DE DEPLACEMENT
------------------------

	Les touches de deplacement sont les memes que celles de la
	plupart des editeurs : fleches, page up, page down ...
	Pour se deplacer de mot en mot :
	Control + Droite/Gauche
	Pour se deplacer de paragraphe en paragraphe :
	Control + Haut/Bas
	Pour aller a la fin ou au debut d'un tampon :
	Control + Page Up/Page Down

* METTRE DES MOTS EN MAJUSCULE/MINUSCULE
----------------------------------------

	M-c : Met la premiere lettre du mot en majuscule
	M-u : Met le mot en majuscule
	M-l : Met le mot en minuscule

* SELECTION AU CLAVIER
----------------------

	Pour selectionner du texte au clavier, commencer par poser une
	marque dans le texte : Ctrl-SPC.
	C-w / S-DEL : couper
	M-w / C-INSERT : copier
	C-y / S-INSERT : coller
	Pour annuler une marque, appuyer sur C-g ou en poser une autre
	(Une autre solution est d'appuyer 3 fois sur ESC)

* FENETRAGE
-----------

        C-x 1   Conserver la fenetre courante a l'exclusion de toutes
                les autres (Emacs tue toutes les autres fenetres, le 
                fait de tuer une fenetre ne detruit pas son contenu qui
                est le tampon).
        C-x 0   Detruire la fenetre courante (le tampon est laisse
                intact)
        C-x 2   Diviser la fenetre courante en deux fenetres 
                (verticalement).
        C-x 3   Diviser la fenetre courante en deux fenetres 
                (horizontalement).
        C-x o   Deplacement d'une fenetre a l'autre.
                (Pour deplacer le curseur vers une autre fenetre, on
                peut aussi juste cliquer sur cette fenetre).

                                
* INSERTION, EFFACEMENT
------------------------

        DEL/Backspace : Effacement d'un caractere.
        C-k     Effacer a partir du curseur jusqu'a la fin de la ligne.


* FAIRE MARCHE ARRIERE
----------------------

        C-/    Defaire la derniere commande ayant modifie le tampon.
        C-_    idem.


* FICHIER
---------

      C-x C-f   Charger un fichier (en appuyant sur TAB une liste de
                choix possibles est proposee).
      C-x C-s   Sauver le fichier.
      C-x C-w   Sauver le fichier sous un nom different.


* BUFFER
--------
 
      C-x C-b   Choisir un tampon dans la liste des tampons.
      C-x k     Supprimer un tampon.
      C-x s     Sauver certains tampons en cours d'edition.

* COMPLETION
------------

	Comme sur tout systeme UNIX, il est souvent possible
	d'utiliser la completion sous emacs.
	Par exemple, pour ouvrir un fichier (C-x C-f), on tape
	les premieres lettres du nom de fichier (repertoire compris)
	et on appuie sur TAB. Le nom de fichier est complete au maximum.
	S'il est impossible de le completer plus car d'autres noms de fichier
	commencent pareil, une liste des differentes completions possibles
	est affichee.

* CHERCHER, REMPLACER
---------------------

        C-s     Rechercher dans le tampon en avancant le curseur.
                Executant cette commande, Emacs vous demande d'entrer
                le mot a rechercher. il est possible ensuite de se
                deplacer d'occurence en occurence en composant C-s
                (pour aller a la prochaine occurence) ou C-r (pour
                se rendre a l'occurence precedente).
        ENTER   Terminer la recherche.
        C-r     Rechercher dans le tampon en reculant (meme
                comportement que  C-s).
        M-%     Remplacer un mot par un autre.


* LA SOURIS
-----------

        Selectionner une zone :
           - debut : appuyer sur le bouton gauche 
                     et le maintenir enfonce.
           - fin   : lacher le bouton.

        Copier : cela revient a selectionner.

        Coller : bouton du milieu (pour une souris a 3 boutons).
                 bouton droit     (pour une souris a 2 boutons).

        Couper : selectionner, puis taper "C-w"
                 (Ce qui a ete coupe, peut-etre ensuite
                  coller avec "C-y").

	IMPORTANT :
	   Si du texte change de couleur quand vous passez la souris dessus,
	   c'est que vous pouvez cliquer dessus avec le bouton 2 de la souris
	   (pour une souris a 2 boutons, c'est le bouton droit.).


* ARGUMENTS PREFIXES
--------------------
	
	Certaines fonctions se comportent differement avec un argument
	prefixe. On donne generalement un argument prefixe en tapant
	C-argument avant un raccourci clavier.
	Ex: C-- => -1
	    C-3 =>  3
	    C-4 Ctrl-2 => 42
	On utilise tres souvent le C--.
	Ex :
	C-9 a => insere 9 fois la lettre "a"
	C-2 C-0 Droite => deplacement de 20 caracteres sur la droite
	C - M-u => Met en majuscule le mot precedent

* QUAND EMACS EST BLOQUE
------------------------

Si Emacs s'est engage dans une boucle infinie, ou bien simplement
dans une operation tres longue, vous pouvez l'arreter en tapant C-g.


* QUITTER EMACS
---------------

Pour terminer une session Emacs, taper C-x C-c.
Cette commande propose la sauvegarde des fichiers non sauves.

* AIDE
------
        C-h t   Tutorial Emacs (dont celui-ci est inspire)
        C-h i   Documentation generale sur l'editeur Emacs. Elle
                est hypertexte et tres facile d'acces. 
        C-h ?   Beaucoup d'autres sources d'informations sur Emacs,
                dont plusieurs orientee programmation sous Emacs.
	C-h c   Affiche la commande execute par une touche
	C-h k   Affiche et decrit la commande execute par une touche
	C-h b   Liste toutes les definitions de touches


;;; Guillaume LATU - STAGIAIRE A FT.BD/CNET/DTL/MSV
;;; Version 2.0 par Stephane LEVANT - STAGIAIRE A FT.BD/CNET/DTL/MSV
;;; France Telecom, CNET Lannion - Aout 1999
;;; document inspire du tutorial en ligne d'Emacs
