GNU-Emacs - Présentation simplifiée

Dominik Gehl

d 'après un document de Guy Lapalme

Emacs est un éditeur de texte très sophistiqué. En réalité, c'est un interprète Lisp qui exécute un éditeur programmé en Lisp. Emacs est un éditeur qui fonctionne sur sept différents systèmes d'exploitation, peu importe l'architecture de l'ordinateur utilisé et ceci aussi bien en mode graphique qu'en mode caractère; ce dernier est particulièrement utile lorsqu'on accède à l'ordinateur via un modem à basse vitesse.

Or, avant d'en apprécier toutes les subtilités, il est important d'en apprendre les rudiments. Ces quelques pages devraient vous permettre d'utiliser Emacs comme n'importe quel éditeur simple. Puisqu'il est difficile d'expliquer en mots ce qui se passe sur l'écran, nous recommandons de faire cette lecture en même temps que vous essayez les commandes à l'écran.

Pour appeler Emacs, il suffit de taper emacs sous Unix et runemacs sous Windows. Après un certain temps, l'écran se videra et apparaîtra au bas de l'écran
Emacs: *scratch* (Lisp Interaction)
indiquant le nom du tampon; le curseur sera en haut à gauche. Nous sommes alors au début d'un document vierge et tout ce qu'on tape y apparaît à mesure. Essayez !!!

Lorsqu'un caractère erroné a été tapé, on appuie sur la touche Suppression (Delete) et le caractère disparaît de l'écran; la touche d'effacement arrière (Backspace) efface le dernier caractère avant la position du curseur et le curseur recule.

Comme chaque caractère tapé s'ajoute au texte, il faut un autre moyen pour donner des commandes à Emacs lorsque nous désirons effectuer autre chose qu'entrer du nouveau texte. Pour différencier les commandes des caractères, il faut appuyer sur la touche Ctrl en même temps qu'une lettre indiquant la commande. Ainsi en appuyant en même temps sur les touches Ctrl et b, le curseur reculera d'une position sans rien changer au texte.

Pour se déplacer dans le texte, les commandes suivantes ont été définies:

Avec ces commandes, il est donc possible de placer le curseur dans le texte et d'y ajouter de nouveaux caractères en les tapant tout simplement.

Au lieu de Ctrl f, Ctrl b, Ctrl n et Ctrl p on peut habituellement utiliser les flèches présentes sur le clavier pour le déplacement du curseur. Essayez-les. Si ça ne marche pas, demandez à un expert de vous configurer Emacs pour que ça fonctionne. Lorsqu'on travaille sur un écran graphique, la façon la plus pratique de se déplacer rapidement dans un texte est d'utiliser la souris. Il suffit d'indiquer l'endroit dans le fichier où on désire se positionner et d'appuyer sur le bouton gauche de la souris.

Pour détruire un caractère, on a déjà vu Suppression (Delete) et Backspace. Pour détruire une ligne à partir de la position actuelle, il existe Ctrl k (Kill); si le curseur est en fin de ligne, il enlève le retour de chariot final et la ligne suivante vient fusionner avec celle-ci.

Pour détruire des groupes de lignes, on en indique le début en plaçant une marque avec Ctrl @ (At) ou Ctrl (espace). Les mots Mark set apparaîtront au bas de l'écran. On positionne ensuite le curseur à la fin de ce qu'on veut détruire.
Ctrl w (Wipe) fait disparaître tout le texte entre la marque et le curseur. On peut aussi utiliser la souris pour délimiter cette région du texte en pointant avec le bouton gauche et en glissant jusqu'à la fin. Le texte marqué est alors souligné.

Après un Ctrl k ou un Ctrl w, le texte détruit peut être récupéré avec Ctrl y (Yank). On peut déplacer du texte en l'insérant avec Ctrl y à un autre endroit que celui dont on vient de l'enlever.

Une autre facon de positionner le curseur est la recherche d'une chaîne: Ctrl s (Search) imprime dans le bas de l'écran I-search: et place le curseur dans un espace appelé mini-buffer où on tape la chaîne désirée terminée par la touche Entrée. Le curseur se placera à la fin de la première occurrence de la chaîne cherchée. La recherche se fait en avançant dans le document. Pour chercher en remontant, il faut faire Ctrl r (Reverse).

Pour effectuer un remplacement de chaîne, il faut taper Échap %. Emacs demande alors la chaîne à changer terminée par un Entrée et ensuite la chaîne de remplacement; il positionne ensuite le curseur à la prochaine occurrence de la chaîne et attendra une réponse avant de faire le remplacement. En tapant un espace, le remplacement sera effectué et le curseur se positionnera à la prochaine occurrence où il attendra encore une réponse. Si on ne veut pas le remplacement de cette occurrence mais qu'on désire quand même continuer pour voir les autres, il faut répondre avec Suppr. Finalement, en répondant ! Emacs effectuera toutes les substitutions restantes sans demander de confirmation.

Emacs permet de revenir en arrière et de défaire l'effet de commandes à l'aide de Ctrl x u (Undo); souvent Ctrl _ fait aussi l'affaire. En appuyant de nouveau sur cette clé, on peut défaire autant de commandes que l'on veut jusqu'à retrouver l'état initial du tampon. Toute autre commande brise la séquence de undo qui peut elle-même être défaite par la suite. En particulier, pour refaire une commande défaite il suffit d'effectuer une commande inoffensive (Ctrl f par exemple) et de réexécuter undo. Ceci semble compliqué, mais est très facile à utiliser une fois qu'on l'a expérimenté. C'est surtout difficile de s'en passer une fois habitué!

Maintenant que nous avons vu comment créer et modifier un fichier, il est intéressant de le conserver. Pour éviter de faire des modifications par erreur, les commandes dangereuses, c'est-à-dire qui modifient des états de fichiers, commencent par Ctrl x avant le code de contrôle:

On peut interrompre toute commande en cours avec Ctrl g (Grrr!).

Sur un écran graphique, il n'est pas nécessaire de se rappeler toutes ces commandes car plusieurs d'entre elles sont disponibles à partir du menu déroulant qui apparaît en appuyant sur un bouton de la souris sur un des mots en gras en haut de l'écran. On y voit la commande et la suite de clés à appuyer pour lancer cette commande. Au début, il est plus facile d'utiliser les menus mais rapidement on apprécie la commodité des combinaisons de clés.


Dernières modifications le 29/04/2001 à 15:41:37