*** empty log message ***
This commit is contained in:
parent
eb407fb4cf
commit
8d64170463
3 changed files with 593 additions and 17 deletions
BIN
unix/editeurs/emacs.png
Normal file
BIN
unix/editeurs/emacs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
579
unix/editeurs/emacs.tml
Normal file
579
unix/editeurs/emacs.tml
Normal file
|
@ -0,0 +1,579 @@
|
|||
<?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>
|
|
@ -13,25 +13,22 @@
|
|||
|
||||
<h2><a name="quoi">Qu'est ce qu'un éditeur de texte ?</a></h2>
|
||||
|
||||
<p>
|
||||
C'est un programme qui sert à créer et modifier des textes, sans mise en
|
||||
forme; la mise en page qu'on a pu y faire est une question de lisibilité (un
|
||||
<em>éditeur de textes</em> n'est donc pas un <em>traitement de textes</em>).
|
||||
</p>
|
||||
<p> C'est un programme qui sert à créer et modifier des textes, sans
|
||||
mise en forme; la mise en page qu'on a pu y faire est une question de
|
||||
lisibilité (un <em>éditeur de textes</em> n'est donc pas un
|
||||
<em>traitement de textes</em>). </p>
|
||||
|
||||
<p>
|
||||
Quand on rédige un rapport, l'étape de réelle mise en page se fait par
|
||||
l'intermédiaire d'un autre programme, LaTeX (un <em>compilateur de
|
||||
textes</em>). L'écriture et la mise en page définitive (qui sont simultanées
|
||||
avec un traitement de textes) sont donc deux étapes différentes (écriture puis
|
||||
compilation).
|
||||
</p>
|
||||
<p> Quand on rédige un rapport, l'étape de réelle mise en page se fait
|
||||
par l'intermédiaire d'un autre programme, LaTeX (un <em>compilateur de
|
||||
textes</em>). L'écriture et la mise en page définitive (qui sont
|
||||
simultanées avec un traitement de textes) sont donc deux étapes
|
||||
différentes (écriture puis compilation). </p>
|
||||
|
||||
<p>
|
||||
Pour apprendre progressivement à utiliser les éditeurs <code>emacs</code>
|
||||
et <code>vim</code>, vous pouvez consulter <a href="cercles.html">les 7
|
||||
cercles des éditeurs de textes</a>.
|
||||
</p>
|
||||
<p> Pour apprendre progressivement à utiliser les éditeurs
|
||||
<code>emacs</code> et <code>vim</code>, vous pouvez consulter <a
|
||||
href="cercles.html">les 7 cercles des éditeurs de textes</a>. Emacs
|
||||
fait par ailleurs l'objet d'un <a href="emacs.html">tutorial
|
||||
spécifique</a>.</p>
|
||||
|
||||
<h2><a name="ecrire">Écrire, oui, mais quoi ?</a></h2>
|
||||
|
||||
|
|
Loading…
Reference in a new issue