Vous êtes sur la page 1sur 8

Introduction à Emacs

Ce tutorial est une version simplifiée du document


“Emacs tutorial”
Copyright
c 1998 Padioleau Yoann, ypadiole@ens.insa-rennes.fr

4 septembre 2006

Table des matières


1 Introduction 2

2 Fonctionnalités générales 2
2.1 Démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Opérations sur les fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Basculer entre plusieurs fichiers ouverts par Emacs . . . . . . . . . . . . . . . 3
2.4 Édition de texte simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5 Fenêtres multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.6 Chercher dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.7 Déplacement rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.8 Structure de l’écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.9 Fonctions diverses très utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Fonctionnalités avancées 5
3.1 La mise en page, l’indentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Remplacer un mot par un autre . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Completion bis, le retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.5 Vérificateur orthographique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Documentation d’Emacs 7

5 Conclusion 7

6 Copyright de ce document 7

Résumé
Ce document décrit la façon d’utiliser Emacs. Il est fait pour être lu tout en ayant un
clavier près de soi.

1
1 Introduction
Emacs est un éditeur de texte très puissant et très utilisé par les programmeurs et
développeurs sous Unix. Emacs n’est pas un simple éditeur textuel, mais c’est un superbe
environnement de programmation ou d’accès à des fonctions systèmes (lecture du mail. . .). Il
vous permet de taper par example votre code LATEX (ou autre comme du C ou du Caml ou
. . .), de le compiler, de le corriger, de le débugger, etc. tout en restant sous Emacs.
Emacs veut dire Editor MACroS (ou bien Eight Megabytes And Constantly Swapping
pour les Anti-Emacs) et fut créé par Richard Stallman fondateur de la FSF (Free Software
Fundation) et du projet GNU (Gnu is Not Unix ou bien Generally Not Used pour les anti-
GNU). Ainsi les sources de Emacs sont librement accessibles et diffusables (voir le Copyright
en fin de document).
Conventions typographiques :
– C-x représente toute combinaison de touches tapées sous Emacs.
– ls -ls représente une interaction entre l’utilisateur et le shell ou une commande ex-
terne à Emacs.
– buffer représente un concept Emacs.
Les commandes d’Emacs demandent souvent de taper une combinaison de touches en
même temps. Ainsi C-<chr> veut dire laisser presser la touche CONTROL tout en tapant
sur la touche <chr>. C-f Veut dire presser en même temps CONTROL et la touche f. M-
<chr> veut dire soit taper la touche META (souvent Alt) en même temps que <chr>, soit
taper ESC puis (relâcher ESC) la touche <chr>. La touche RET est la touche Return ou
Entrée.

2 Fonctionnalités générales
2.1 Démarrage
Pour lancer Emacs, il suffit de le lancer en ligne de commande sous un shell

emacs foo.tex &

créera et ouvrira un fichier de nom foo.tex dans Emacs, alors que

emacs &

ouvrira Emacs en batch.


Pour quitter tapez C-x C-c (vous demandant occasionnellement si vous voulez sauve-
garder votre travail en tapant soit y ou n). Noter que nous décrirons dans ce document des
commandes claviers mais que la plupart d’entre elles sont aussi accessibles par les menus
d’Emacs.
Pour annuler des commandes (quand le curseur est dans le minibuffer) taper C-g.

2.2 Opérations sur les fichiers


Pour ouvrir un fichier il suffit de taper C-x C-f (f pour find). Le pointeur ira alors dans
une zone appelée le minibuffer (cf 2.8) où il vous demandera de rentrer le nom du fichier.
Pour sauvegarder les modifications apportées à un fichier tapez C-x C-s (save).

2
2.3 Basculer entre plusieurs fichiers ouverts par Emacs
On peut avec Emacs gérer plusieurs fichiers ouverts en même temps. Pour ouvrir plusieurs
fichiers il suffit de répéter un certain nombre de fois la commande C-x C-f (cf 2.2).
A chaque fois que l’on ouvre un nouveau fichier, il prend la place de l’ancien à l’écran,
mais l’ancien est toujours présent pour Emacs en mémoire. Chacun de ces fichiers représente
une unité appelée buffer . Pour voir la liste des buffers tapez C-x C-b 1 .
Tous ces buffers ont des noms, ainsi pour basculer vers un autre fichier ouvert il suffit de
taper C-x b, qui vous demandera alors de taper le nom du fichier.
Pour détruire un buffer , s’y placer puis taper la commande C-x k (k pour kill).

2.4 Édition de texte simple


Pour sélectionner une partie du texte, soit vous le faites à la souris, soit vous le faites
au clavier (la bonne façon). Pour sélectionner une région il faut d’abord déposer une marque
(généralement au début du texte que l’on veut sélectionner) en tapant C-ESPACE ou bien
C-x ESPACE, puis il suffit de se déplacer (selon a configuration, on peut voir que la région
sélectionnée a une autre couleur sous X par exemple).
Enfin pour copier cette région tapez M-w, ou pour la couper C-w. Le texte coupé est
placé dans une sorte de tampon2 . Pour le coller tapez C-y.
Il faut noter qu’il y a un historique des ”copier” et ”couper”. Ainsi, une fois que vous avez
tapé C-y pour coller un texte, vous pouvez taper M-y et le ”copier” ou ”coller” précédent
dans l’historique est collé.
On peut couper une ligne facilement sans avoir à sélectionner une région avec C-k.

2.5 Fenêtres multiples


Comme vous l’avez vu, Emacs permet de garder en mémoire un certain nombre de fichiers.
Le problème c’est que vous ne pouvez en voir que un à la fois et du coup les multiples fenêtres
paraissent mieux. Mais c’est sans compter les fenêtres multiples sous Emacs.
Pour scinder votre écran Emacs en deux parties tapez C-x 2 Ainsi on voit toujours le
même fichier, mais l’écran est coupé en deux fenêtres 3 . Pour basculer entre les fenêtres
(window) tapez C-x o. Ainsi vous pouvez voir deux régions différentes du même fichier, mais
vous pouvez aussi facilement voir deux fichiers différents (réfléchissez un peu). Il suffit dans
l’une des windows de taper C-x b (cf 2.3) qui bascule entre buffer (ce qui revient à basculer
entre les fichiers ouverts) et de choisir un buffer différent.
– Pour revenir à une seule fenêtre tapez C-x 1.
– Pour scinder en deux verticalement C-x 3.
Vous pouvez répéter ce processus un certain nombre de fois et avoir ainsi 5 à 6 fenêtres
visibles en même temps.

2.6 Chercher dans un fichier


Quand on programme ou que l’on tape du texte on a souvent besoin de se déplacer
rapidement. Emacs offre une fonction puissante pour chercher du texte : incremental search
1
Un certain nombre de buffers sont précédés d’un astérisque, ils sont réservés par Emacs
2
le kill ring
3
Emacs appelle fenêtre ce que nous appelons frame

3
(la recherche incrémentale).
Je m’explique : admettons que vous voulez rechercher le mot padioleau et que vous savez
que votre mot est plus bas dans le fichier. Tapez C-s. Vous êtes alors invité à taper votre
requête. Tapez alors la lettre p et déjà Emacs trouve la première occurrence de ”p” dans le
fichier, puis tapez a pour affiner jusqu’à ce qu’il trouve. L’intérêt est que vous n’avez pas à
taper tout le texte. Il se peut qu’il lui suffise de une ou deux lettres seulement.
Si votre recherche échoue (beep sonore), c’est peut être que votre mot est situé au dessus.
Tapez alors C-r (increment search backward = recherche en arrière).
Notez que vous pouvez enlever des lettres (où en rajouter) tout au long de ces opérations,
ce qui généralise la recherche (respectivement l’affine).
Retapez C-s (ou C-r) et vous irez à la prochaine occurrence (respectivement la précédente).
On peut aussi vouloir aller à une certaine ligne, et dans ce cas tapez M-g puis votre
numéro de ligne4 .

2.7 Déplacement rapide


La façon la plus simple de se déplacer est d’utiliser les flèches.
– Pour aller au début de la ligne C-a ou HOME si le clavier est bien configuré.
– Pour aller à la fin d’une ligne C-e ou END.
– Pour descendre d’une page C-v (M-v pour remonter) ou PAGE DOWN (respectivement
PAGE UP).
– Pour aller au début du fichier tapez M-<, à la fin M->.
– Pour vous déplacer de mot en mot, de paragraphe en paragraphe voir 4.
L’ultime méthode pour se déplacer est d’utiliser la recherche incrémentale (cf 2.6).

2.8 Structure de l’écran


Décomposons la fenêtre de haut en bas.
– Tout en haut : des menus (utiles pour trouver une fonction la première fois, mais après
c’est plus rapide d’utiliser les raccourcis clavier).
– Puis éventuellement des icônes (seulement sous XEmacs).
– Puis la partie où vous visualisez vos fichiers ou autres (scindée éventuellement en plu-
sieurs windows, cf 2.5)
– Puis vient la ligne modeline (ligne d’état) typiquement :

--**-Emacs: tron.c (C Font)--L113--78%------------------

Expliquons :
– Les deux premières étoiles indiquent que le fichier a été modifié (elles sont remplacées
par des tirets dès que l’on sauvegarde, et par %% quand le fichier est en lecture seule).
– tron.c est le nom du buffer (et donc du fichier ouvert).
– C signifie que Emacs est en mode C. Emacs possède un nombre impressionnant de
modes, dont le CAML, C, C++, PERL, Pascal, LaTeX, HTML, Ada, Assembleur,
LISP, Java, bash, Tcl etc. (si vous voulez éditer un fichier écrit dans le langage LANG,
essayez M-x LANG-mode RET). Ces modes sont adaptés aux données contenues
dans le fichier (indentation automatique cf 3.1, etc.).
4
sous Emacs, si cela ne marche pas essayez M-x goto-line RET

4
– Font signifie que font-lock-mode est actif. C’est un minor mode (contrairement à C
qui est appelé un major mode) qui permet de colorier le fichier ouvert (rouge pour
les commentaires, jaune pour les mots-clés par exemple).
– L113 signifie que l’on se trouve à la ligne 113 dans le fichier.
– 78% signifie que nous sommes situés à 78% du fichier (quand on est au début du fichier
il indique Top, à la fin Bot et quand on voit tout le fichier All).
– Enfin la dernière ligne représente le minibuffer . C’est lui qui permet d’interagir avec
l’utilisateur. Par exemple quand on tape C-x C-f (ouvrir fichier), il nous demande de
taper le nom du fichier à ouvrir. Ce minibuffer est très pratique et très bien fait. En
effet il possède la complétion. Par exemple quand vous avez tapé C-x C-f et que vous
voulez ouvrir foo.c alors tapez f puis TAB et si foo.c est le seul fichier du répertoire à
commencer par f alors le minibuffer va remplir (compléter) le reste pour vous. Formi-
dable, non ? Sinon si fo2.c existe alors il va compléter jusqu’au facteur commun, c’est à
dire ”fo”. Tapez alors encore sur TAB et il affichera la liste des fichiers qui commencent
par ”fo”. Tapez o (ce qui fait que vous voyez foo dans le minibuffer) puis TAB et étant
donné qu’il n’y a plus de conflit il complétera par foo.c.
Que de temps gagné. De plus il possède un historique (tapez sur flèche haut ou bas et
le texte tapé avant réapparaı̂t).

2.9 Fonctions diverses très utiles


– Pour annuler l’action précédente (undo) taper C-/ ou C-x u.
– Pour annuler des commandes (quand le curseur est dans le minibuffer) taper C-g.
– Pour avoir accès à toutes les commandes 5 tapez M-x puis le nom d’une commande.
Là encore le minibuffer vous aide en complétant le nom (si la fonction existe) quand
vous appuyez sur TAB. Si vous tapez plusieurs fois de suite sur TAB vous verrez la
liste des fonctions (cf 2.8).

3 Fonctionnalités avancées
3.1 La mise en page, l’indentation
Quand vous êtes en Latex-mode (traduit par le fait de voir LaTeX en major mode (cf 2.8)
dans la région modeline), Emacs peut indenter automatiquement votre code.
Il suffit de taper TAB (qui ne réalise par de tabulation du coup) et la ligne s’indente
automatiquement.
Là encore vous pouvez configurer les valeurs des indentations (en nombre d’espaces) cf 4.
Vous pouvez aussi ne pas avoir à taper sur TAB en réglant une valeur, et du coup à
chaque fin de ligne quand vous tapez sur RET il se place directement là où il faut.
Vous pouvez indenter toute une région en la sélectionnant (comme quand on veut la
couper, cf 2.4), puis tapez M-x (cf 2.9) suivit de indent-region.
Ainsi, si on vous donne du code mal indenté, tapez : C-x h ce qui sélectionne tout le
contenu du buffer, puis M-x indent-region 6 .
5
en effet Emacs est un ensemble de fonctions LISP accessibles par les touches. Ce processus s’appelle binder
(associer) une touche à une fonction. Le problème est qu’il n’y a pas assez de touches pour toutes les fonctions,
ce qui implique que certaines fonctions sont inaccessibles à l’aide d’un raccourci
6
cela peut parfois prendre du temps, alors prenez patience

5
Notez que parfois vous avez l’impression que Emacs indente mal. C’est que vous avez
un problème dans votre code (accolade ou parenthèse fermante manquante etc...). Ainsi ça
permet de voir les problèmes de syntaxe de votre programme sans lancer le compilateur (qu’il
est fort ce Emacs !).

3.2 Remplacer un mot par un autre


Tapez M-%, puis votre premier mot mot1 RET puis le second mot2 RET. Emacs
placera le pointeur sur la première occurrence de mot1. Tapez alors y ou n, puis il ira sur
l’occurrence suivante. Tapez alors y ou n et ainsi de suite.
Pour ne pas avoir à dire y à chaque fois, tapez ! au lieu de y.
Il est possible de remplacer des regexps (regular expression ou expression régulière) par un
mot (très puissant). Par exemple remplacer tous les MOTS dede par menfout : tapez M-x
replace-regexp puis \<dede\> RET puis menfout RET (\< veut dire début de mot et
\> fin de mot).
Puissant, non ? Et c’est pas fini, le meilleur est à venir.
Les expressions régulières sont un concept UNIX très important et très puissant. Pour
plus d’informations voir dans le manuel hypertexte de Emacs (cf 4) le noeud searching and
replacement.

3.3 Complétion bis, le retour


Nous avons déjà vu que Emacs aidait l’utilisateur à compléter les mots dans le minibuffer .
Il peut le faire aussi dans les fichiers. Il suffit de taper les premières lettres d’un mot, par
exemple pad puis M-/ et alors il complétera par padioleau (si le mot est présent dans le
buffer courant ou dans les autres).
Fantastique. Ainsi, imaginez que vous faites du C++ (y a des masos partout), et que vous
voulez appeler une fonction déclarée plus haut (ou plus bas) dans le fichier ou dans un autre
fichier (ouvert par Emacs). Vous savez que la fonction commence par fo. Tapez fo puis M-/
et avec un peu de chance il complétera par foobar. Si ce n’est pas le cas, retapez sur M-/
jusqu’à ce qu’il trouve, si il ne trouve pas c’est que cette fonction n’est dans aucun des buffers.

3.4 Macro
Il arrive que vous ayez à répéter plusieurs fois une séquence de touches. Pour gagner du
temps Emacs met à notre disposition les macros. Tapez C-x ( puis votre séquence de touches
puis C-x ), et votre macro est enregistrée. Pour l’appeler tapez simplement C-x e.

3.5 Vérificateur orthographique


Il est possible sous Emacs d’effectuer une vérification orthographique. Il suffit de disposer
du programme ispell et du dictionnaire orthographique de la langue (des dictionnaires et le
programme ispell sont déjà installés sur vos machines).
Pour lancer la vérification sur un fichier tapez M-x ispell-buffer. Emacs vous demandera
dès qu’il trouve une erreur de donner une réponse. L’écran se scinde en deux, et dans la fenêtre
du haut on peut voir un certain nombre de choix et des couples mot-nombre. Si l’un des choix
proposés vous va, tapez alors le nombre correspondant au mot. Si aucun choix n’est donné
alors tapez sur R si vous voulez corriger le mot. Si le mot est selon vous bien écrit tapez sur

6
ESPACE. L’ennui c’est que selon lui ce mot est mal écrit, et donc si il le rencontre encore,
il vous requestionnera. La solution est de taper sur a au lieu de ESPACE. Si vous voulez
insérer le mot dans votre propre dictionnaire (ispell ne connaı̂t pas tous les mots) tapez sur
i. On peut aussi :
– vérifier une région avec M-x ispell-region.
– vérifier un mot avec M-$.
– compléter un mot avec M-TAB ou M-x ispell-complete-word.
Si vous voulez que Emacs prenne le dictionnaire français, tapez M-x ispell-change-
dictionary puis francais.

4 Documentation d’Emacs
– Le mode info : Emacs dispose d’un manuel hypertexte (un peu comme le HTML) très
complet. Pour y accéder tapez C-h i. Il suffit de déplacer le curseur sur un noeud (le
noeud emacs par exemple), puis d’appuyer sur RET. Pour revenir en arrière tapez sur
u pour up.
– Le tutorial : tapez sur C-h t.
– La FAQ7 : tapez sur C-h F.
– La commande apropos : tapez sur C-h a puis votre requête.
– Voir la documentation d’une fonction LISP : tapez sur C-h f font-lock-mode par
exemple.
– Pour tout le reste tapez sur C-h ? pour voir la liste des fonctions d’aide offertes par
Emacs.
Emacs dispose aussi d’une refcard (carte de référence où il y a quasiment tous les raccourcis
claviers) disponible dans le répertoire où est installé Emacs (utiliser locate refcard.ps pour
la trouver).
Le mode info de Emacs présente une documentation de Emacs hypertexte. Il est possible
d’en avoir une version dans un autre format (comme le PostScript ou l’HTML ou l’ASCII) en
ramenenant les sources de Emacs et en compilant les .texi avec texi2html par exemple, ou
un autre utilitaire du package texinfo disponible sur le site de GNU (un bon miroir français
est name=”ftp ://ftp.lip6.fr/pub/gnu/”¿).

5 Conclusion
Ce tutorial ne montre que quelques possibilités de l’éditeur Emacs. N’hésitez pas à regarder
la doc pour plus d’informations, et pour parfaire vos connaissances.

6 Copyright de ce document
This manual is free software ; you may redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation ; either
version 2, or (at your option) any later version.
7
Frequently Asked Questions, soit questions souvent posées

7
This is distributed in the hope that it will be useful, but without any warranty without
even the implied warranty of merchantability or fitness for a particular purpose. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License. If not, write to the
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Vous aimerez peut-être aussi