next_inactive up previous


Introduction à Emacs

Philippe Marsalle d'après une présentation de Thierry Stoehr


Table des matières

Quelques mot sur ce document ...

Ce document a été réalisé par un membre du groupe Doc de Parinux.
Le groupe Doc est joignable sur la mailing liste doc@parinux.org, vos remarques et contributions sont les bienvenues.

Cette documentation est la propriété de son auteur. Elle est librement diffusable dans les termes de la Licence de Documentation Libre GNU
( GNU Free Documentation License) dans sa version 1.1. La Licence de Documentation Libre GNU peut être consultée à l'adresse http://www.gnu.org/copyleft/fdl.html ou à l'adresse http://www.IDEALX.org/fr/licences/gfdl.html pour une traduction en français.

Conventions

Pour éditer, manipuler le texte, Emacs utilise des fonctions qui sont appellées à l'aide de la touche Méta représentée par M dans ce document ou bien de la touche Ctrl représentée par C.

M x
signifie: tapez sur la touche ESC puis sur la touche x
C-x
signifie: tapez sur la touche Ctrl et sans la relâcher tapez sur x
C-x u
signifie: tapez sur les touches Ctrl et x, relâchez et tapez sur u
C-x C-u
signifie: tapez sur la touche Ctrl et sans la relâcher tapez sur x, toujours sans relacher la touche Ctrl tapez sur u
M x
signifie à Emacs que vous allez taper une commande (fonction).
C-...
constitue un raccourci clavier pour une commande.
$ unecommande
la commande unecommande est lancée depuis le shell.
Si jamais vous êtes perdu dans les commandes et que vous souhaitez interrompre le traitement entamé : tapez C-g, le message 'QUIT' s'affiche alors dans le minibuffer (OUF!), si vous souhaitez annuler la dernière commande taper C-x u. Nous parlerons plus tard du minibuffer, pour l'instant il suffit de savoir qu'il s'agit d'une interface entre Emacs et l'utilisateur.

Présentation

Emacs est un éditeur de texte ouvert. Par ouvert, il faut comprendre que les capacités de ce formidable outil sont extensibles grâce à des fichiers écrit en LISP. Vous en avez rêvé, Emacs LE fait !
Emacs propose une documentation intégrée en anglais. Emacs est disponible sous GNU/LINUX, FreeBSD, NetBSD, OpenBSD, SunOS, MacOS, Windows ...
Emacs contient une documentation complète en anglais, en voici les principaux aspects :
C-h t
vous permet d'accéder au tutoriel Emacs.
C-h c
vous donne la description d'une clé.
C-h f
vous donne la description d'une fonction.
Quelques liens :

Pratique

Pour lancer Emacs il suffit de taper...$ emacs. Il est également possible de le lancer à partir du menu d'une interface graphique.
Emacs se présente ainsi à l'écran

Manipulation de fichier

$ emacs lefichierquejeveuxouvrir
permet de lancer Emacs en lui spécifiant le fichier à éditer
C-x C-f unautrefichier
permet d'ouvrir unautrefichier, si le fichier n'existe pas il est créé.

C-x i
permet d' insérer un fichier dans le fichier précedemment ouvert, Emacs vous demande alors dans le minibuffer de saisir le chemin pour accéder au fichier valider avec la touche Enter et le texte est inséré. Cette fonction est très pratique, je l'utilise par exemple pour éviter de saisir le préambule lorsque je tape un document LATEX.
C-x C-s
permet de sauvegarder le texte que vous avez saisi.
C-x C-w
permer de le sauvegarder sous un autre nom ( à saisir dans le minibuffer)
C-x C-c
permet de quitter Emacs, si vous avez oublié de sauvegarder ce fichier ou un autre ouvert auparavent Emacs vous avertit dans le minibuffer.
Régulièrement Emacs sauvegarde le fichier que vous êtes en train d'éditer, le fichier ainsi sauvegardé est #nomdufichier#.

Se déplacer dans un texte

Pour se déplacer dans le texte que vous êtes en train d'éditer, Emacs propose les commandes suivantes :

Manipulation des buffers

Intéressons nous maintenant à la zone de saisie de texte : le buffer. Petite précision: le buffer contient un fichier à éditer, la fenêtre permet d'afficher un buffer; ce n'est pas parce qu'une fenêtre est fermée que le fichier l'est aussi. Plusieurs buffers peuvent se partager cette zone mais un seul est visible dans une fenêtre donnée, pour plusieurs fichiers il faut faut donc ouvrir plusieurs fenêtre. Voyons donc comment manipuler ces buffers et fenêtres.
C-x C-b
permet de voir la listes des buffers ouverts. Cette liste apparaît dans une nouvellle fenêtre.
C-x o
permet de se déplacer vers la Buffer List ainsi ouverte, placer vous sur le buffer désiré taper sur Enter et le buffer apparaît dans la fenêtre.
C-x b
permet de se déplacer directement dans un buffer dont vous connaissez le nom, une fois de plus grâce à la complétion cela va assez vite.
C-x 2
permet de diviser la fenêtre courante en deux.On peut alors se déplacer dans la nouvelle fenêtre et ouvrir un nouveau fichier (C-x C-f); mais il y a mieux :
C-x 4 f
vous permet d'ouvrir un nouveau fichier directement dans une autre fenêtre, la saisie du nom de fichier se fait dans le minibuffer.
C-x 0
permet de supprimer la fenêtre courante.
C-x 1
permet de supprimer toutes les fenêtres sauf celle où vous êtes.
C-x k
permet de supprimer un buffer, bien entendu Emacs vous avertit si le buffer n'a pas été sauvegardé.

Manipulation de texte

Une manipulation de texte s'effectue sur une région du texte, le marquage de cette région se fait à l'aide de la combinaison C-SPACE pour le début de la zone, la fin de zone se déterminant à l'aide du curseur. Ainsi les combinaisons successives M < + C-SPACE + M > permettent de sélectionner la totalité d'un texte. Toute les commandes de cette section nécessite un marquage, lorsque ce n'est pas le cas cela sera signalé.
C-x C-x permet de vérifier le marquage effectué.

Recherches, Substitutions

Emacs propose une fonctionnalité très pratique : la recherche incrémentale. C-s permet de lancer une recherche incrémentale vers l'avant, la recherche débute dès la saisie d'une lettre du mot recherché dans le minibuffer et se poursuit en fonction de la suite du mot. Pour interrompre la recherche tapez sur Enter.
C-r permet de lancer une recherche incrémentale vers l'arrière.
Pour effectuer une substitution il faut procéder ainsi:
M % et le minibuffer vous invite à choisir l'expression à remplacer, valider par Enter, une expression de substitution vous est alors demandée saisir et valider par Enter. Le minibuffer vous propose alors plusieurs options: Rappel:le minibuffer gére un historique des expressions remplacées, et de remplacement accessible avec la touche $\uparrow$ comme dans un shell bash.

Marque page

Emacs permet de poser une marque à un endroit précis d'un texte, et gère la liste de ces marques. Ces marques peuvent concerner plusieurs fichiers, on a donc une liste d'hyper-liens vers différents documents et à l'endroit sélectionné. Il est ainsi facile de se positionner rapidement à l'endroit voulu, dans le fichier désiré ( ce qui est très pratique si l'on gère plusieurs document de taille importante ) Voici comment procéder :
C-x r m
permet de poser un signet ( après s'être déplacé à l'endroit voulu ) Le minibuffer vous invite alors à en saisir le nom, valider par Enter.
C-x r l
affiche dans une nouvelle fenêtre la liste des marques page.
C-x r b
permet d'ouvrir un marque page, le minibuffer vous demande de saisir le nom du bookmark ( penser à utiliser la complétion, l'historique ).
M x bookmark-delete
permet de supprimer un marque page.

Abréviations

Une abréviation c'est un raccourci pour une expression, un mot souvent utilisé. Il est possible de définir des abréviations globales ( pour tout les modes) ou locales (pour un mode particulier) . Voici comment définir une abréviation globale :
M x abbrev-mode
permet d'entrer dans le mode abbréviation.
Saisir alors l'abréviation (par exemple le mot adresse)
C-x a i g
et le minibuffer vous invite à saisir le texte effectif (par exemple : 21 rue des coquelicots 99999 fleurville)
A chaque fois que vous saisirez adresse, le texte réellement écrit sera 21 rue des coquelicots 99999 fleurville. Les abréviations sont définies pour la durée de le session Emacs en cours. Il est possible de changer cela en faisant certaines modifications dans votre fichier .emacs.

Macros

Lorsque dans un texte vous devez réaliser des opérations répétitives et fréquentes, c'est une bonne idée d'utiliser une macro.  
Par exemple je viens de taper un texte, et pour une raison obscure je souhaite ajouter un point d'exclamation à la fin de chaque ligne. L'opération se décompose ainsi : L'écriture de la macro se déroule ainsi:
C-x (
marque le début de la définition de la macro.
C-e
pour aller en fin de ligne.
!
pour rajouter le !
$\downarrow$
pour passer à la ligne suivante.
C-x )
marque la fin de la macro.
La macro est définie, pour l'éxécuter taper C-x e
Si vous souhaitez l'utiliser n fois de suite il faut taper M n C-x e. Attention, la saisie du nombre n se fait à l'aide des chiffres du clavier alphabétique et non avec ceux du pavé numérique.
Une telle macro ne dure que le temps de votre session Emacs, il se peut que vous ayez besoin de définir des macros permanentes, voici comment procéder:

Ces macros devront être sauvegardées dans un fichier
C-x C-f
mesmacros, remplacer par le nom que vous voulez.
C-x (
votre précieuse macro
C-x )
M x name-last-kbd-macro
permet de saisir le nom à la dernière macro dans le minibuffer (unemacro pour l'exemple).
M x insert-kbd-macro
saisir le nom de la macro dans le minibuffer.
C-x C-s
pour sauvegarder, êtes vous sûr ? ;)
Vous pouvez quitter Emacs, lors d'une nouvelle session il suffira de :
M x load-file
mesmacros pour charger les macros définies dans le fichier.
M x unemacro
pour éxécuter la macro unemacro.
Le chargement du ou des fichiers contenant les macros peut être automatisé en fonction de l'extension du fichier dans votre .emacs, il est ainsi possible de disposer directement de vos macros.

Exemples d'utilisation

À propos de ce document...

Introduction à Emacs

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -local_icons -t 'Introduction à Emacs' -dir emacs emacs.tex

The translation was initiated by Philippe on 2002-05-01


next_inactive up previous
Philippe 2002-05-01