Mode d'emploi raisonné d'Emacs

Vous trouverez la liste des commandes Emacs en
http://pauillac.inria.fr/~levy/x/m2/emacs/index.html.
Voici également un fichier imprimable (par lpr) qui résume les commandes emacs.

Ce document regroupe les commandes que j'utilise le plus souvent par fonctionnalités. Outre les flèches et les menus, les commandes sont invoquées de deux façons : De façon générale, à chaque fois qu'Emacs demande quelque chose (une commande, un nom de fichier...), on peut appuyer sur la barre d'espacement pour voir la liste des possibilités.

1  Lancement

Le plus simple est de lancer la commande emacs avec pour argument le fichier à éditer et en arrière plan. Par exemple, pour éditer Bug.java, la commande est :
maranget@manche ~/TD/TD-03 > emacs Bug.java &
Sous X, cette commande crée une nouvelle fenêtre.

Il est également possible de lancer Emacs dans la fenêtre shell courante. On lui passe alors l'option -nw :
maranget@manche ~/TD/TD-03 > emacs -nw Bug.java
On quitte emacs par les touches Control-x Control-c. On suspend emacs par Control-z. Control-g interrompt la commande emacs en cours. C'est très utile lorsque l'on est perdu dans une combinaison de touches ou que l'on renonce au dernier moment à une commande.

2  Se déplacer

Outre les flèches, la scrollbar et le pointage à la souris, on se déplace par les combinaisons de touches suivantes :
Control-f, Esc-f
Un caractère, un mot en avant.
Control-b, Esc-b
Un caractère, un mot en arrière.
Control-n
Une ligne vers le bas.
Control-p
Une ligne vers le haut.
Control-a, Control-e
Aller en début, en fin de la ligne courante.
Control-v, Esc-v
Une page vers le bas, une page vers le haut.
Esc-<, Esc->
Aller en début, fin de fichier.
Control-x g
Aller à la ligne numéro n (demandée).
Control-l
Recentrer le fichier lu dans la fenêtre.
Emacs a une notion de région, on définit la région en saisissant une zone à la souris, ou en positionnant la marque par Control-@, puis en déplaçant le curseur vers l'autre limite de la région.

3  Effacer

Control-d, Backspace
Effacer un caractère à droite, à gauche du curseur. (Delete a le même effet que Backspace).
Esc-d, Esc-Delete
Effacer un mot à droite, à gauche du curseur.
Control-k
Effacer du curseur à la fin de la ligne courante. Un deuxième Control-k efface le retour à la ligne en plus.
Control-w
Effacer la région.

4  Défaire ce qui a été fait

Control-y
Restaurer les dernières lignes effacés où la dernière région effacée.
Control-_
Défaire n'importe quelle commande (peut être répété).

5  Manipulation de fichiers

Emacs maintient un certain nombre de tampons (buffers) d'édition qui sont en général associés chacun à un fichier.
Control-x Control-s
Sauver le tampon courant.
Control-x Control-w
Écrire le tampon courant dans un fichier dont le nom sera demandé.
Control-x Control-f, Control-x Control-v
Ouvrir un nouveau tampon sur un fichier dont le nom sera demandé.
Control-x Control-i
Insérer un fichier à la position du curseur. Utile pour insérer un bout de programme par exemple.

6  Recherche et remplacement

Control-s
Rechercher en avant. Le curseur bouge au fur et à mesure que l'on tape les caractères à rechercher. Si on appuie une deuxième fois sur Control-s, le dernier mot recherché est utilisé.
Control-r
Rechercher en arrière. Mêmes propriétés que la recherche en avant.
Esc-%
Remplacer une séquence de caractère par une autre. Une fois les deux séquences tapées, le curseur se positionne sur une occurrence à remplacer, on la remplace par la barre d'espacement, on passe à l'occurrence suivante par Delete et on quitte par ``q''.
Esc-x replace-string
Remplacement immédiat d'une séquence par une autre.

7  Édition des programmes

Lorsque vous éditez un fichier avec l'extension .java, Emacs passe dans un mode approprié et vous aide à indenter les programmes. Un nouveau menu apparaît et de nouvelles commandes sont disponibles. Votre code a tout intérêt à être correctement présenté, soit :
Tab
Indente la ligne courante.
Control-c Control-q
Indente le bloc dans lequel se trouve le curseur.
On peut aussi compiler un programme à partir d'Emacs.
Esc-x compile (ou Control-x Control-x)
Exécuter une commande Unix (demandée).
Control-x `
Si la commande exécutée précédemment est une compilation qui a échoué, positionner le curseur sur la première erreur (peut être répété).

8  Tampons et fenêtres

Un tampon est un fichier en cours d'édition, Une fenêtre est un tampon visible. Ce que vous voyez à l'écran est une frame qui peut être divisée en plusieurs tampons. On se positionne dans les fenêtres en cliquant dedans. Notez aussi qu'il peut y avoir plusieurs fenêtres montrant le même tampon.
Control-x Control-b
Liste des tampons actifs.
Control-x b
Remplacer le tampon courant par un autre. (Un nom est demandé).
Control-x o
Changer de fenêtre. Répéter pour trouver la bonne.
Control-x k
Détruire le tampon courant.
Control-x 0
Faire disparaître la fenêtre courante (le tampon est conservé).
Control-x 1
Faire disparaître toutes les autres fenêtres.
Control-x 2
Faire deux fenêtres avec le tampon courant (verticalement).
Control-x 3
Faire deux fenêtres avec le tampon courant (horizontalement).

9  ``Programmation''

Esc n
Répéter la prochaine commande n fois.
Control-x (
Commencer à enregistrer les touches frappées.
Control-x )
Terminer l'enregistrement des touches.
Control-x Control-e
Répéter les touches enregistrées.

Ce document a été traduit de LATEX par HEVEA.