Académique Documents
Professionnel Documents
Culture Documents
Intro Emacs
Intro Emacs
4 septembre 2006
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 &
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).
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 .
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).
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.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.
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.