Introduction à Emacs
Philippe Marsalle d'après une présentation de Thierry Stoehr
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.
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.
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 :
http://www.emacsfr.org
Le site français entièrement dédié à Emacs.
http://www.linux-france.org/article/appli/emacs/manuel/
La documentation interne d'Emacs presque entièrement traduite en français.
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
- En partie supérieure il y a la barre des menus pour les amateurs de
souris, sinon toutes les commandes possèdent leur raccourci ce qui est bien
[plus] pratique. A noter la présence d'un menu spécifique au type de fichier
édité: par exemple, pour réaliser ce document j'ai choisi d'utiser LATEX et
ai donc appelé mon fichier emacs.tex Emacs a détecté l'extension et me propose
un menu LATEX, on dit qu'Emacs a chargé le mode LATEX. De la même maniére
Emacs aurait proposé un menu C ( et chargé le mode C )propre au langage de
programmation C, si j'avais édité un fichier dont l'extension serait .c. Mais
comment donc Emacs sait-il qu'il doit charger le mode C, cela lui est spécifié
dans le fichier .emacs qui se situe dans le répertoire personnel de
l'utilisateur qui a lancé Emacs. Il y a de multiple exemples de fichier .emacs
commentés sur le web aussi je ne m'étendrai pas sur le sujet.
- La partie centrale est la zone d'édition où vous allez saisir votre
texte. Cette zone peut être divisée en plusieur fenêtre, il est donc
possible d'éditer plusieurs textes à la fois, je reviendrai sur cette
possibilité plus loin. J'ai parlé de fenêtre, pour Emacs il s'agit en fait
de buffer.
- La partie inférieure est le minibuffer. C'est là que les commandes sont passées à Emacs.
Le minibuffer propose une fonctionnalité très agréable : la complétion, la
complétion est disponible, grâce à la touche TAB, pour les nom de
fichiers comme pour les noms de commande. Le minibuffer gére également un
historique de ce qui a été tapé dans le minibuffer accessible avec la touche
comme sous bash. Ces deux fonctionnalités sont à consommer sans modération !!
- $ 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#.
Pour se déplacer dans le texte que vous êtes en train d'éditer, Emacs propose les commandes suivantes :
- Pour aller en fin de fichier : M > (Esc + Shift + <)
- Pour aller en début de fichier : M <
- Pour aller en fin de ligne : C-e astuce mnémotechnique : e comme end.
- Pour aller en début de ligne : C-a astuce mnémotechnique : a comme le
début de l'alphabet.
- Pour aller en fin de mot : M f
- Pour aller en début de mot : M b
- Pour aller à la lettre suivante : C-f
- Pour aller à la lettre précédente : C-b
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é.
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é.
- Mettre une région de texte en majuscule
M x upcase-region, mais rappelez vous que vous êtes dans le minibuffer : utilisez la complétion.
- Mettre une région de texte en minuscule
M x downcase-region
- Mettre le première lettre d'un mot en majuscule
M c
- Supprimer une série de lignes vides
C-x C-o
- Couper/coller
- Version sans marquage
C-k permet de supprimer la ligne courante à partir de la position du curseur.
C-y permet de coller la zone après s'être déplacé à l'endroit voulu.
- Version avec marquage
C-w permet de couper la zone
C-y permet de coller la zone après s'être déplacé à l'endroit voulu.
- Copier/Coller
M w permet de copier la zone
C-y permet de coller la zone après s'être déplacé à l'endroit voulu.
Historique : Emacs gère une liste des éléments coupés et copiés, cette liste est accessible
grâce à M y, cette commande doit immédiatement succéder un C-y, si ce n'est pas le cas un message d'erreur vous le rappelle dans le minibuffer.
- Tri
Il existe plusieurs sorte de tris, selon les lignes, les paragraphes, les colonnes ...
M x sort-lines effectue un tri sur les lignes, une fois encore utilisez la complétion dans
le minibuffer pour voir toutes les possibilités.
- Rectangle
Un rectangle est un zone rectangulaire de texte. Par exemple admettons
que j'ai un fichier avec des noms suivis de numéro de téléphone et que je
souhaite récupérer cette liste de nom sans les numéros de téléphones:
- C-x r k
- permet de couper le rectangle
- C-x r y
- permet de coller le rectangle
- Pliage
J'ai édité un texte assez important mais je ne souhaite travailler que sur une partie et donc ne
voir que cette partie, il faut faire un pliage :
C-x n n permet de ne plus voir que la région sélectionnée précédemment.
C-x n w permet de revenir à l'état normal.
Il faut signaler que lors du lancement de cette commande Emacs vous avertit qu'elle est inactivée
et vous demande de valider votre intention.
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:
- SPACE ou y pour valider la substitution et continuer la recherche.
- n pour ne pas effectuer la substitution et continuer la recherche.
- ! pour effectuer toutes les substitutions à partir de la position
courante.
- h pour voir les autres options qui sont proposées
- OUPS ! C-x u pour annuler, comme précisé précédemment .
Rappel:le minibuffer gére un historique des expressions remplacées, et de remplacement accessible avec la touche
comme dans un shell bash.
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.
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.
- Pour créer une abbréviation locale il suffit de remplacer
C-x a i g par C-x a i l.
- M x unepand-abbrev permet de supprimer la dernière abréviation.
- M x kill-all-abbrevs permet de supprimer toutes les abbréviations.
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.
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 :
- aller en fin de ligne, C-e
- écrire le !
- passer à ligne suivante
ou C-n
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 !

- 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.
- Emacs propose un tas de fonctionnalités très pratique pour programmer.
- un mode propre à chaque langage ( C, C++, Java, Perl ...) fournissant colorations syntaxique, indentation automatique.
- possibilité de compiler en tapant M x compile + commande de compilation.
- possibilité de débugger ( pour peu qu'un débuggeur soit installé ;)) Par exmple pour débugger en C il faut taper M x gdb.
- possibilité de se placer en mode shell ( M x shell ) et d'éxécuter vos programmes.
- Grâce à
Auctex
, Emacs offre de nombreuses fonctionalités permettant d'écrire, de compiler un source LATEX. Une introduction à son utilisation est disponible ici.
- De même, le module
psgml
permets à Emacs d'offrir des facilités pour écrire un document SGML
. Une archive compressée décrivant son utilisation est disponible là.
- Emacs propose des jeux : tétris , solitaire ...
M x tetris permet de lancer tétris
M x solitaire permet de lancer solitaire
M x doctor permet de se faire ...psychanalyser par Doctor Emacs
- ...
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
Philippe
2002-05-01