579 lines
26 KiB
XML
579 lines
26 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
|
"tuteurs://DTD/tml.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Tutorial emacs</title>
|
|
</head>
|
|
<body>
|
|
|
|
<h1>GNU Emacs : tutorial</h1>
|
|
|
|
<p>Ce tutorial est destiné aux gens souhaitant se familiariser ave
|
|
GNU Emacs. Si vous avez davantage de questions, vous pouvez les poser
|
|
sur forum dans le conti
|
|
<code>ens.forum.informatique.editeurs.emacs</code>. Pour savoir
|
|
comment poster sur forum et le lire, lisez la <a
|
|
href="&url.tuteurs;internet/forum/">documentation à ce sujet</a>.</p>
|
|
|
|
<h2>Généralités</h2>
|
|
|
|
<h3>Qu'est-ce qu'Emacs ?</h3>
|
|
|
|
<p>Emacs est un éditeur de texte très puissant, qui est également
|
|
capable de beaucoup d'autres choses (invoquer une commande shell,
|
|
envoyer ou recevoir du courrier électronique, lire les news, se
|
|
transformer en psy, et même faire le café selon certaines mauvaises
|
|
langues). En contrepartie, Emacs est assez lourd (beaucoup plus en
|
|
tout cas que l'éditeur standard d'UNIX, vi) et souvent ésotérique.</p>
|
|
|
|
<p>Emacs date de 1975. Il a été écrit par Richard M. Stallman qui
|
|
était alors au MIT. Emacs a été conçu à l'origine comme un ensemble de
|
|
macros pour un TECO, un vieil éditeur de texte. Emacs veut donc dire
|
|
« Editing MACroS ». Par la suite, plusieurs
|
|
versions d'Emacs ont été développées, mais la version la plus répandue
|
|
reste GNU Emacs (alias FSF Emacs), celle de M. Stallman, qui est
|
|
la réécriture du Emacs originel.</p>
|
|
|
|
<div class="attention">Ce tutorial est consacré à GNU Emacs
|
|
(accessible en lançant simplement « emacs » à
|
|
l'ENS) dans sa fonction d'éditeur de textes. Il ne faut pas confondre
|
|
GNU Emacs et XEmacs. Ce ne sont pas deux versions du même programme
|
|
mais, malgré les ressemblances, deux programmes différents.</div>
|
|
|
|
<p>Emacs est principalement utilisé sous les systèmes de type UNIX,
|
|
mais il existe également pour MS-DOS ou Windows.</p>
|
|
|
|
<h3>Format des commandes emacs</h3>
|
|
|
|
<p>Les commandes d'emacs utilisent les touches <code>Control</code>
|
|
(souvent abrégé en <code>Ctrl</code> sur la touche) ou
|
|
<code>Meta</code> de votre clavier. Si vous n'avez pas de touche
|
|
<code>Meta</code> ou que vous ne savez pas où elle est, utilisez la
|
|
touche <code>Escape</code> (ou <code>Échap</code>). Comme les
|
|
commandes sont assez complexes, on utilise des abréviations. Ainsi,
|
|
<code>C-c</code> signifie : appuyez sur <code>Ctrl</code> et, en
|
|
gardant la touche enfoncée, appuyez sur
|
|
<code>c</code>. <code>M-g</code> signifie : appuyez sur la touche
|
|
<code>Meta</code> et, en gardant la touche enfoncée, sur
|
|
<code>g</code>.</p>
|
|
|
|
<div class="attention">Si vous utilisez <code>ESC</code> à la place de
|
|
la touche <code>Meta</code>, il faut appuyer sur
|
|
<code>ESC</code> <em>puis</em> sur l'autre touche.</div>
|
|
|
|
<p>En particulier, par exemple, <code>C-x i</code> (insertion d'un
|
|
fichier) ne fait <em>pas</em> la même chose que <code>C-x C-i</code>
|
|
(qui décale une région sélectionnée d'un caractère vers la
|
|
droite)... Taper des commandes complexes d'emacs requiert parfois un
|
|
peu de doigté. Si vous vous êtes trompé de commande, vous pouvez
|
|
annuler avec <code>C-_</code> (cf. ci-dessous la gestion des
|
|
erreurs).</p>
|
|
|
|
<p>Dernière précision : toutes les commandes emacs sont
|
|
accessibles en utilisant leur nom complet, qu'on peut appeler en
|
|
tapant d'abord <code>M-x</code>. Certaines d'entre elles sont
|
|
disponibles par le biais de raccourcis comme ceux cités plus
|
|
haut : <code>M-g</code> par exemple a pour nom complet <code>M-x
|
|
goto-line</code>. Mais beaucoup de commandes sont accessibles
|
|
seulement par un nom complet. En outre, vous pouvez parfois retrouver
|
|
une commande en passant par son nom complet (on retient mieux que
|
|
<code>M-c</code> met en majuscule la première lettre d'un mot quand on
|
|
se souvient que le c est pour <em>capitalize-word</em>).</p>
|
|
|
|
<h3>Obtenir de l'aide</h3>
|
|
|
|
<p>Emacs a la particularité d'avoir une aide en ligne importante. Pour
|
|
y accéder, lancez emacs tout seul (cf. <em lang="la">infra</em>) ou
|
|
tapez <code>C-h</code> ou encore <code>M-x help</code>.</p>
|
|
|
|
<div class="attention">Pour les utilisateurs de la config conscrits
|
|
2002, attention : la commande d'aide n'est plus <code>C-h</code>
|
|
mais <code>M-?</code>. Le remplacement est à faire pour toutes les
|
|
commandes d'aide qui suivent.</div>
|
|
|
|
<p><code>C-h k</code> vous permet d'obtenir des renseignements
|
|
succints sur une commande donnée. Exemple : vous voulez savoir ce
|
|
que fait la commande <code>M-g</code>. Tapez <code>C-h k</code>. Emacs
|
|
vous demande de décrire la commande (<em lang="en">key</em> en
|
|
anglais) que vous souhaitez connaître. Tapez alors
|
|
<code>M-g</code>. Emacs ouvre en 2 la fenêtre et vous dit qu'il s'agit
|
|
de la commande <code>goto-line</code>, qu'on l'emploie comme
|
|
ceci : <code>M-g <nombre n></code> et qu'il s'agit d'aller
|
|
à la ligne n.</p>
|
|
|
|
<p><code>C-h t</code> lance le tutorial officiel d'emacs (en
|
|
anglais).</p>
|
|
|
|
<p><code>C-h i</code> vous donne accès aux répertoires
|
|
« info » qui contiennent de l'aide sur différents
|
|
programmes, parmi lesquels emacs. Cette commande vous envoie
|
|
directement sur la rubrique emacs. On navigue entre les fichiersgrâce
|
|
à des liens hypertexte. On passe de lien en lien avec <code>TAB</code>
|
|
et <code>M-TAB</code>, on suit un lien avec <code>Enter</code> et on
|
|
remonte vers le répertoire père avec <code>u</code>;</p>
|
|
|
|
<p>Pour quitter l'aide, on utilise les commandes de manipulation des
|
|
buffers (cf. ci-dessous « Manipuler plusieurs buffers en
|
|
même temps »).</p>
|
|
|
|
<p>Vous pouvez obtenir la liste des commandes d'emacs en tapant
|
|
<code>M-x describe-bindings</code>.</p>
|
|
|
|
<h2>Manipuler des fichiers</h2>
|
|
|
|
<h3>Lancer emacs</h3>
|
|
|
|
<p>Emacs se lance comme n'importe quel programme sous UNIX. Si vous
|
|
tapez :</p>
|
|
|
|
<pre><span class="prompt">clipper ~ $</span> emacs</pre>
|
|
|
|
<p>Emacs se lancera dans une fenêtre. Pour lancer emacs dans votre
|
|
terminal, utilisez l'option <code>-nw</code>. Cette option est
|
|
particulièrement pratique lorsque vous souhaitez travailler à distance
|
|
sur un fichier qui est sur votre compte clipper, par exemple, mais
|
|
elle vous privera de certaines possibilités (les menus déroulants et
|
|
les boutons, par exemple). Si vous souhaitez travailler sur un fichier
|
|
précis, tapez emacs puis le nom du fichier :</p>
|
|
|
|
<pre><span class="prompt">clipper ~ $</span> emacs maitrise.tex</pre>
|
|
|
|
<p>Si vous observez la fenêtre d'emacs, vous pourrez voir un certain
|
|
nombre d'informations qui dépendent de la version d'emacs qui est
|
|
installée. À la date où cette documentation est écrite, c'est la
|
|
version 21.2.1 qui est installée par défaut sur clipper. Pour savoir
|
|
quelle est votre version, tapez </p>
|
|
|
|
<pre><span class="prompt">clipper ~ $</span> emacs --version</pre>
|
|
|
|
<p>Les renseignements donnés ici valent pour cette version. Il est
|
|
possible que certaines choses ne fonctionnent pas avec des versions
|
|
plus vieilles.</p>
|
|
|
|
<div class="attention">Notez aussi que certaines commandes ne sont
|
|
valables que dans le cadre de la config conscrit. Ce tutorial signale
|
|
les différences entre config conscrit et config standard.</div>
|
|
|
|
<p>À l'heure actuelle, emacs ressemble à ceci :</p>
|
|
|
|
<div class="illustration"><img src="emacs.png" alt="[Image de la
|
|
fenêtre d'emacs]"/></div>
|
|
|
|
<p>Tout d'abord, vous voyez en haut de la fenêtre des menus déroulants
|
|
(File, Edit, Options, Buffers, Tools, Help), et en-dessous quelques
|
|
icônes. Il est commode au départ d'utiliser menus déroulants et
|
|
icônes, mais il ne faut pas en abuser. C'est en apprenant les
|
|
raccourcis claviers que vous exploiterez au maximum les possibilités
|
|
d'emacs et que vous serez plus efficaces. Remarquez aussi en bas de la
|
|
fenêtre ce qu'on appelle le mini-buffer, qui sert à emacs pour
|
|
communiquer avec vous. Lorsque vous tapez une commande, elle s'affiche
|
|
dans le mini-buffer.</p>
|
|
|
|
<p>Entre les deux se trouve, en gris sur l'image (avec « GNU
|
|
Emacs »), la « ligne de mode » (<em
|
|
lang="en">mode line</em> en anglais). Elle donne de précieuses
|
|
indications telles que le nom du fichier en cours d'édition, le mode
|
|
majeur et le(s) mode(s) mineur(s) dans lequel vous vous trouvez
|
|
(cf. ci-dessous sur les modes d'emacs), éventuellement le numéro de la
|
|
ligne où se trouve votre curseur, etc.</p>
|
|
|
|
<h3>Les modes d'emacs</h3>
|
|
|
|
<p>Emacs peut s'adapter au type de fichier que vous éditez. Ce sont
|
|
ses « modes ». Le mode par défaut est appelé
|
|
« fondamental », il n'a pas de comportement
|
|
particulier. Il existe de nombreux modes, mais les plus important sont
|
|
le mode texte, le mode C ou encore le mode LaTeX. Quand vous éditez un
|
|
fichier, emacs choisit son mode en fonction de l'extension du fichier
|
|
en question. Par exemple, si vous éditez un fichier en
|
|
<code>.tex</code>, il se mettra automatiquement en mode LaTeX. S'il ne
|
|
peut pas déterminer quel type de fichier vous allez éditer, il se met
|
|
en mode fondamental.</p>
|
|
|
|
<p>Les modes C, texte ou LaTeX sont des modes majeurs. Il existe aussi
|
|
des modes mineurs qui peuvent s'activer ou se désactiver à l'intérieur
|
|
d'un mode majeur. Par exemple, le mode « fill »
|
|
signifie qu'emacs va aller à la ligne dès que c'est nécessaire. Le
|
|
mode « overwrite » signifie qu'il va écrire
|
|
par-dessus les caractères déjà tapés au lieu de les insérer. Le mode
|
|
majeur et le(s) mode(s) mineur(s) dans lesquels vous vous trouvez sont
|
|
indiqués dans la ligne de mode.</p>
|
|
|
|
<h3>Fichiers et buffers</h3>
|
|
|
|
<p>Tout d'abord, un rappel d'ordre général. Les éditeurs de texte
|
|
n'éditent pas directement un fichier. Ils mettent le contenu de votre
|
|
fichier dans un <em lang="en">buffer</em> (qu'on traduit parfois par
|
|
« tampon ») temporaire, qu'ils éditent. Quand vous
|
|
sauvegardez, l'éditeur retransfère les contenus du buffer dans votre
|
|
fichier. Si vous quittez l'éditeur sans sauvegarder, le buffer est
|
|
détruit et votre fichier demeure donc intact. C'est pourquoi, quand on
|
|
lance emacs sans argument, il ouvre un buffer appelé
|
|
<code>*scratch*</code> : c'est un buffer sans fichier
|
|
associé. <code>*Help*</code> est un autre exemple de buffer non
|
|
associé : c'est l'aide en ligne.</p>
|
|
|
|
<p>Que vous ayez lancé emacs tout court ou en lui demandant d'ouvrir
|
|
un fichier, vous pouvez insérer tout de suite du texte en tapant
|
|
directement ce que vous voulez.</p>
|
|
|
|
<h3>Ouvrir un fichier</h3>
|
|
|
|
<p>Vous pouvez ouvrir un fichier, comme nous l'avons vu, simplement en
|
|
le donnant comme argument à emacs, ou encore le faire une fois emacs
|
|
lancé. Pour cela, faites <code>C-x C-f</code> (nom complet :
|
|
<code>M-x find file</code>). Emacs vous demande alors quel fichier
|
|
vous voulez ouvrir. Il suffit de compléter le nom du fichier puis
|
|
d'appuyer sur <code>Entrée</code>, puis emacs crée un nouveau buffer
|
|
qui porte le nom du fichier que vous voulez éditer. À noter que si
|
|
vous jonglez entre plusieurs buffers, appuyer sur la flèche vers le
|
|
haut après un <code>C-x C-f</code> vous donne accès à l'historique de
|
|
tous les fichiers déjà ouverts par ce moyen.</p>
|
|
|
|
<div class="encadre">Si vous voulez ouvrir un fichier qui existe déjà,
|
|
il vous suffit de taper les premières lettres de son nom puis
|
|
d'appuyer sur <code>TAB</code>. Emacs essaiera de compléter le nom de
|
|
fichier pour vous. C'est ce qu'on appelle la complétion.</div>
|
|
|
|
<h3>Manipuler plusieurs buffers en même temps</h3>
|
|
|
|
<p>Avec un seul et même emacs, vous pouvez manipuler plusieurs buffers
|
|
en même temps en utilisant le multi-fenêtrage, c'est-à-dire la
|
|
capacité d'emacs à couper sa fenêtre en deux (ou plus) pour vous
|
|
permettre d'avoir plusieurs buffers en regard. Pour ouvrir un deuxième
|
|
buffer, tapez <code>C-x 2</code> (la fenêtre se coupe en 2
|
|
horizontalement dans ce cas, si vous préférez un découpage vertical,
|
|
utilisez <code>C-x 3</code>). Pour passer d'un buffer à l'autre,
|
|
faites <code>C-x o</code>. Pour faire disparaître le buffer où se
|
|
trouve votre curseur, tapez <code>C-x 0</code>. Pour faire disparaître
|
|
l'autre c'est <code>C-x 1</code>.</p>
|
|
|
|
<p>Le multi-fenêtrage est une fonctionnalité très utile d'emacs. Elle
|
|
vous permet de comparer facilement plusieurs fichiers, de faire
|
|
facilement des copier-coller depuis plusieurs fichiers vers un seul,
|
|
etc.</p>
|
|
|
|
<h3>Insérer un fichier</h3>
|
|
|
|
<p>Déplacez votre curseur jusqu'à l'endroit où vous souhaitez insérer
|
|
un autre fichier. Puis tapez <code>C-x i</code> (<code>M-x
|
|
insert-file</code>). Emacs suit la même procédure qu'avec <code>C-x
|
|
C-f</code> : il vous demande quel fichier insérer.</p>
|
|
|
|
<h3>Sauvegarder un fichier</h3>
|
|
|
|
<p>Si vous tapez <code>C-x C-s</code> (<code>M-x save-buffer</code>),
|
|
emacs sauvegarde le buffer dans le fichier associé et indique à
|
|
l'écran (dans le mini-buffer) « <em lang="en">Wrote
|
|
/users/00/litt/toto/maitrise.tex</em> ». Si vous voulez
|
|
sauvegarder vos modifications <strong>dans un autre fichier</strong>,
|
|
il faut utiliser la commande <code>C-x C-w</code>. Le nom complet,
|
|
<code>M-x write-file</code> est transparent : emacs écrit le
|
|
contenu du buffer dans un fichier qui n'est pas nécessairement celui
|
|
associé au buffer. <code>C-x C-w</code> peut être pratique pour éditer
|
|
un fichier que vous n'avez pas le droit de modifier.</p>
|
|
|
|
<h3>Quitter emacs</h3>
|
|
|
|
<p>Tapez <code>C-x C-c</code> pour quitter emacs. Si vous avez édité
|
|
un ou des buffers que vous n'avez pas sauvegardé(s), emacs vous
|
|
demandera s'il doit le faire avant de se fermer.</p>
|
|
|
|
<p>Si vous désirez seulement quitter emacs temporairement (pour lire
|
|
votre mail ou faire une pause dans l'édition de votre fichier), la
|
|
meilleure solution est d'utiliser <code>C-z</code> qui
|
|
<em>suspend</em> emacs sans le fermer. Dès que vous voudrez reprendre
|
|
emacs, tapez <code>fg</code> dans le shell et vous retrouverez votre
|
|
fenêtre avec le même buffer et le curseur exactement où vous l'aviez
|
|
laissé. Si vous êtes en mode graphique, <code>C-z</code> minimise la
|
|
fenêtre d'emacs.</p>
|
|
|
|
<h2>Manipuler du texte</h2>
|
|
|
|
<h3>Déplacer le curseur</h3>
|
|
|
|
<p>Les raccourcis claviers vous permettent de vous déplacer très
|
|
facilement dans votre fichier. Ils peuvent remplacer les touches
|
|
« flèches », certes, mais plus encore vous
|
|
permettre d'être beaucoup plus rapide que si vous n'utilisiez que les
|
|
touches de déplacement du clavier. Leur apprentissage est un peu
|
|
laborieux mais ils vous feront gagner beaucoup de temps.</p>
|
|
|
|
<table class="tableau">
|
|
<tr>
|
|
<th>Bouger d'un(e)...</th>
|
|
<th>Vers l'avant</th>
|
|
<th>Vers l'arrière</th>
|
|
</tr><tr>
|
|
<td>caractère</td><td><code>C-b</code></td><td><code>C-f</code></td>
|
|
</tr><tr>
|
|
<td>mot</td><td><code>M-b</code></td><td><code>M-f</code></td>
|
|
</tr><tr>
|
|
<td>ligne</td><td><code>C-p</code></td><td><code>C-n</code></td>
|
|
</tr><tr>
|
|
<td>début/fin de ligne</td><td><code>C-a</code></td><td><code>C-e</code></td>
|
|
</tr><tr>
|
|
<td>phrase</td><td><code>M-a</code></td><td><code>M-e</code></td>
|
|
</tr><tr>
|
|
<td>paragraphe</td><td><code>M-{</code></td><td><code>M-}</code></td>
|
|
</tr><tr>
|
|
<td>buffer</td><td><code>M-<</code></td><td><code>M-></code></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3>Effacer</h3>
|
|
|
|
<p>Pour effacer quelques caractères, vous pouvez utiliser les touches
|
|
<code>delete</code> ou <code>backspace</code> de votre
|
|
clavier. Évidemment, vous pouvez aussi utiliser des commandes pour
|
|
faire ce travail. <code>C-d</code> efface le caractère sur lequel se
|
|
trouve le curseur. <code>M-d</code> efface la suite d'un mot à partir
|
|
de l'endroit où se trouve le curseur (pour que le mot entier soit
|
|
effacé, il faut placer le curseur au début du mot).</p>
|
|
|
|
<p>Au niveau d'une ligne, <code>C-k</code> efface le reste de la ligne
|
|
à partir de la position du curseur. Pour effacer la ligne entière, il
|
|
faut placer le curseur au début de la ligne.</p>
|
|
|
|
<table class="tableau">
|
|
<tr><th>Commande</th><th>Nom complet</th><th>Action</th></tr>
|
|
<tr><td>C-d</td><td>M-x delete-char</td><td>Efface le caractère
|
|
sur lequel est le curseur.</td></tr>
|
|
<tr><td>M-d</td><td>M-x kill-word</td><td>Efface le mot à partir du
|
|
curseur.</td></tr>
|
|
<tr><td>M-backspace</td><td>M-x backward-kill-word</td><td>Efface le
|
|
mot précédent.</td></tr>
|
|
<tr><td>C-k</td><td>M-x kill-line</td><td>Efface la ligne à partir du
|
|
curseur</td></tr>
|
|
<tr><td>_</td><td>M-x kill-paragraph</td><td>Efface le paragraphe à
|
|
partir du curseur.</td></tr>
|
|
</table>
|
|
|
|
<h3>Sélectionner</h3>
|
|
|
|
<p>On peut faire une sélection (pour couper ou copier, par exemple)
|
|
avec la souris dans emacs. Si vous ne pouvez/voulez pas sélectionner à
|
|
la souris (par exemple vous utilisez <code>emacs -nw</code>), vous
|
|
pouvez utilisez le système de marquage d'emacs. On place une
|
|
« marque » au début du texte à sélectionner avec
|
|
<code>C-espace</code>. Ensuite, déplacez le curseur jusqu'à la fin du
|
|
texte à sélectionner (on appelle l'endroit où est le curseur le
|
|
« point »). Votre sélection est faite (même si
|
|
vous ne la voyez pas).</p>
|
|
|
|
<table class="tableau">
|
|
<tr><th>Commande</th><th>Nom complet</th><th>Action</th></tr>
|
|
<tr><td>C-espace</td><td>M-x set-mark-command</td><td>Poser une
|
|
marque</td></tr>
|
|
<tr><td>C-x C-x</td><td>M-x
|
|
exchange-point-and-mark</td><td>Échanger la marque et le point</td></tr>
|
|
<tr><td>M-h</td><td>M-x mark-paragraph</td><td>Sélectionner tout le
|
|
paragraphe</td></tr>
|
|
</table>
|
|
|
|
<h3>Copier et coller</h3>
|
|
|
|
<p>Quand emacs efface quelque chose (mot, ligne, paragraphe, mais pas
|
|
un caractère isolé), il le place en mémoire (dans ce qu'en anglais on
|
|
appelle le <em lang="en">kill ring</em>). Vous pouvez ensuite
|
|
« coller » tout ce qui a été effacé (que ce soit
|
|
une seule grosse suppression ou plusieurs suppressions d'affilée) avec
|
|
<code>C-y</code>. Pour couper à proprement parler, il faut utiliser
|
|
<code>C-w</code> (ou <code>M-x kill-region</code>).</p>
|
|
|
|
<p>À noter que <code>M-y</code> permet de naviguer dans l'historique
|
|
du <em lang="en">kill ring</em>. <code>C-y</code> colle la dernière
|
|
chose à avoir été copiée ou coupée, mais si vous voulez coller quelque
|
|
chose coupé ou collé précédemment, utilisez <code>M-y</code>
|
|
après.</p>
|
|
|
|
<p>Pour copier quelque chose (pour le coller ensuite), sélectionner ce
|
|
qu'il faut copier puis faites <code>M-w</code>.</p>
|
|
|
|
<h3>Rechercher et remplacer</h3>
|
|
|
|
<p>Pour effectuer une recherche simple vers la fin du fichier, c'est
|
|
<code>C-s</code> suivi du mot ou de l'expression recherchée. Pour une
|
|
recherche vers le début du fichier, c'est <code>C-r</code>. Avec
|
|
emacs, il est également possible de faire des recherches en utilisant
|
|
des expression régulières (avec des métacaractères comme ., *, ?, $,
|
|
etc.) : taper <code>C-M-s</code>. Pour aller à l'occurence
|
|
suivante du mot ou de l'expression correspondant à votre recherche
|
|
(simple ou avec une expression régulière), tapez <code>C-s</code> ou
|
|
<code>C-r</code>. Pour annuler votre recherche, tapez
|
|
<code>C-g</code>).
|
|
</p>
|
|
|
|
<div class="attention">La syntaxe des expressions régulières d'emacs
|
|
est un peu particulière.</div>
|
|
|
|
<p>De même, pour les remplacements, emacs vous offre deux
|
|
possibilités. Pour remplacer simplement un mot ou une expression,
|
|
tapez <code>M-%</code>. Pour faire un remplacement à partir d'une
|
|
expression régulière, c'est <code>M-x
|
|
query-replace-regexp</code>. Dans les deux cas, une fois qu'emacs aura
|
|
trouvé la première occurrence correspondant à votre demande, il vous
|
|
demandera s'il doit effectuer le remplacement.</p>
|
|
|
|
<p>Répondez <code>y</code> pour remplacer cette occurrence,
|
|
<code>n</code> pour ne pas le faire. Dans ces deux cas, après avoir
|
|
effectué ou pas le remplacement, emacs passera à l'occurrence
|
|
suivante. Pour faire de manière automatique le remplacement sur la
|
|
suite du fichier, répondez <code>!</code>. Pour abandonner le
|
|
remplacement demandé, appuyez sur <code>ESC</code>.</p>
|
|
|
|
<h3>Formater</h3>
|
|
|
|
<p>Quand vous êtes en mode <code>Fill</code> (regardez votre ligne de
|
|
mode), emacs coupe naturellement les lignes de la meilleure manière
|
|
possible pour lui. Mais au fur et à mesure de l'édition de votre
|
|
fichier, vous pouvez vous retrouver avec des lignes très courtes et
|
|
d'autres trop longues. Une commande très utile est <code>M-q</code>
|
|
qui réarrange le texte d'un paragraphe de manière harmonieuse.</p>
|
|
|
|
<p>Vous pouvez également changer la longueur des lignes. Par exemple,
|
|
pour fixer à 20 caractères la longueur des lignes, tapez <code>C-u 20
|
|
C-x f</code>.</p>
|
|
|
|
<h3>Changements de casse</h3>
|
|
|
|
<p>Emacs possède des commandes spéciales pour les problèmes de casse
|
|
(vous tapez deux majuscules de suite au lieu de la majuscule initiale
|
|
suivie de minuscules, etc.). Pour mettre en majuscules la première
|
|
lettre d'un mot, tapez <code>M-c</code> (c comme <em
|
|
lang="en">capitalize</em>. Pour mettre un mot entier en majuscules,
|
|
c'est <code>M-u</code> (u pour <em lang="en">uppercase</em>). Pour le
|
|
mettre en minuscules, c'est <code>M-l</code> (l pour <em
|
|
lang="en">lowercase</em>). Emacs effectue ces transformations à partir
|
|
de l'endroit où se trouve le curseur, pour changer le mot entier, il
|
|
faut donc se placer sur sa première lettre.</p>
|
|
|
|
<h3>Permutations</h3>
|
|
|
|
<p>Comme beaucoup de gens, vous faites des fautes de frappe qui sont
|
|
souvent dues à un manque de coordination entre les doigts. Vous tapez
|
|
donc « poru » au lieu de
|
|
« pour ». Emacs possède des commandes qui peuvent
|
|
résoudre votre problème en vous permettant de permuter des lettres,
|
|
des mots, des lignes, des phrases, et même des paragraphes. Ainsi,
|
|
alors que votre curseur est sur le u de « poru »,
|
|
tapez <code>C-t</code> pour intervertir r et u.</p>
|
|
|
|
<table class="tableau">
|
|
<tr><th>Commande</th><th>Nom complet</th><th>Action</th></tr>
|
|
<tr><td><code>C-t</code></td><td><code>M-x
|
|
transpose-chars</code></td><td>Intervertit deux lettres</td></tr>
|
|
<tr><td><code>M-t</code></td><td><code>M-x
|
|
transpose-words</code></td><td>Intervertit deux mots</td></tr>
|
|
<tr><td><code>C-x C-t</code></td><td><code>M-x
|
|
transpose-lines</code></td><td>Intervertit deux lignes</td></tr>
|
|
<tr><td><code>_</code></td><td><code>M-x
|
|
transpose-sentences</code></td><td>Intervertit deux phrases</td></tr>
|
|
<tr><td><code>_</code></td><td><code>M-x
|
|
transpose-paragraphs</code></td><td>Intervertit deux paragraphes</td></tr>
|
|
</table>
|
|
|
|
<h2>Divers</h2>
|
|
|
|
<h3>Gestion des erreurs</h3>
|
|
|
|
<p>Si vous vous êtes trompé et que vous souhaitez revenir à l'action
|
|
précédente, tapez <code>C-x u</code> (ou <code>C-_</code>, plus facile
|
|
à taper). Vous pouvez revenir en arrière ainsi jusqu'à l'ouverture de
|
|
votre session emacs. Attention, <code>C-_</code> ne s'applique qu'à
|
|
une modification du buffer. Ainsi, on ne peut pas annuler le
|
|
déplacement du curseur ou une opération de copier.</p>
|
|
|
|
<div class="attention">Si vous tapez <code>C-_</code> par erreur, la
|
|
même touche peut servir à faire un redo (c'est-à-dire un undo
|
|
d'undo !). Pour cela, il vous suffit de faire un déplacement
|
|
quelconque du curseur (pour éviter de continuer la séquence d'undo
|
|
commencée) et de retaper <code>C-_</code>. Dans certains cas, les
|
|
<code>C-_</code> en série et imbriqués peuvent avoir des conséquences
|
|
étonnantes.</div>
|
|
|
|
<p>Pour revenir carrément à l'état où était votre fichier au moment où
|
|
vous l'avez sauvegardé pour la dernière fois, tapez <code>M-x
|
|
revert-buffer</code>.</p>
|
|
|
|
<div class="encadre">Pour annuler une commande que vous êtes en train
|
|
de taper (mais que vous n'avez pas encore lancée), tapez
|
|
<code>C-g</code>.</div>
|
|
|
|
<p>Emacs affichera « Quit » dans le mini-buffer
|
|
et abandonnera la commande en cours.</p>
|
|
|
|
<h3>Interaction avec le shell</h3>
|
|
|
|
<p>Il est possible d'exécuter une commande shell depuis emacs, par
|
|
exemple pour compiler le fichier tex que vous êtes en train
|
|
d'éditer. C'est la commande <code>M-!</code>. Emacs vous demande dans
|
|
le mini-buffer la commande que vous souhaitez lancer, et vous donne
|
|
son résultat. Si la commande s'est effectuée sans compte-rendu, emacs
|
|
vous dit « <em lang="en">(Shell command succeeded with
|
|
no output)</em> ». Sinon, il coupe sa fenêtre en deux et
|
|
vous donne la sortie de la commande.</p>
|
|
|
|
<p>Pour exécuter une commande shell puis insérer le résultat de cette
|
|
commande dans le buffer, tapez plutôt <code>C-u
|
|
M-!</code>. Exemple : vous souhaitez insérer dans votre fichier
|
|
la date exacte. Tapez <code>C-u M-!</code>, puis emacs vous demande
|
|
quelle commande vous souhaitez exécuter. Répondez
|
|
« date ». Emacs insérera le résultat de la
|
|
commande <code>date</code> directement dans le fichier, au point où se
|
|
trouve votre curseur.</p>
|
|
|
|
<p>Vous pouvez même demander un terminal dans un nouveau buffer, qui
|
|
s'appelle précisément *Shell*, avec la commande <code>M-x
|
|
shell</code>. Attention, ce terminal ne traite pas les séquences
|
|
d'échappement, pour cela il faut plutôt faire <code>M-x term</code>
|
|
qui lance *terminal*. </p>
|
|
|
|
<h3>Arguments numériques</h3>
|
|
|
|
<p>Emacs permet de répéter autant de fois qu'on le souhaite le même
|
|
caractère ou la même commande grâce à <code>C-u
|
|
<nombre></code>. Ainsi, <code>C-u 50 C-p</code> permet de
|
|
répéter 50 fois la commande <code>C-p</code> et donc de remonter de 50
|
|
lignes. <code>C-u 5 !</code> vous permet d'insérer 5 points
|
|
d'exclamation.</p>
|
|
|
|
<p>Dans le cadre de commandes plus complexes, <code>C-u
|
|
<nombre></code> agit comme un modificateur. On l'a vu par
|
|
exemple pour changer la taille des lignes.</p>
|
|
|
|
<h3>Complétion de mots déjà tapés</h3>
|
|
|
|
<p><code>M-/</code> vous permet de compléter un mot en cours de
|
|
frappe. Admettons que vous écriviez un article de droit
|
|
constitutionnel et que vous deviez tapez
|
|
« anticonstitutionnellement » à plusieurs
|
|
reprises. La deuxième fois, tapez simplement
|
|
« anti » puis <code>M-/</code>. Emacs complètera
|
|
tout seul. Si d'autres mots commençant par
|
|
« anti » apparaissent déjà dans le buffer, taper
|
|
de nouveau <code>M-/</code> permet de cycler entre tous les mots
|
|
possibles.</p>
|
|
|
|
<h3>Psychanalyse</h3>
|
|
|
|
<p>On prétend qu'emacs sait aussi faire le café, en attendant, vous
|
|
pouvez toujours vous faire psychanalyser par lui. Essayez donc
|
|
<code>M-x doctor</code> !</p>
|
|
|
|
<h2>Configuration d'emacs</h2>
|
|
|
|
<p>Emacs est extrêmement configurable. Pour modifier quelque chose à
|
|
sa configuration, il faut modifier le fichier <code>.emacs</code> se
|
|
trouvant dans votre répertoire personnel. Le <code>.emacs</code> de la
|
|
config conscrits 2002 contient une petite introduction au langage
|
|
utilisé ainsi qu'aux configurations de base que l'on peut faire.</p>
|
|
|
|
<div class="metainformation">Auteur : Marie-Lan Nguyen, avec
|
|
l'aide de Josselin Noirel, Luc Habert et David Madore. Dernière
|
|
modification le 2003-03-04</div>
|
|
|
|
</body>
|
|
</html>
|