diff --git a/unix/editeurs/emacs.png b/unix/editeurs/emacs.png new file mode 100644 index 0000000..96cd156 Binary files /dev/null and b/unix/editeurs/emacs.png differ diff --git a/unix/editeurs/emacs.tml b/unix/editeurs/emacs.tml new file mode 100644 index 0000000..c46f03c --- /dev/null +++ b/unix/editeurs/emacs.tml @@ -0,0 +1,579 @@ + + + +
+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
+ens.forum.informatique.editeurs.emacs
. Pour savoir
+comment poster sur forum et le lire, lisez la documentation à ce sujet.
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.
+ +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.
+ +Emacs est principalement utilisé sous les systèmes de type UNIX, +mais il existe également pour MS-DOS ou Windows.
+ +Les commandes d'emacs utilisent les touches Control
+(souvent abrégé en Ctrl
sur la touche) ou
+Meta
de votre clavier. Si vous n'avez pas de touche
+Meta
ou que vous ne savez pas où elle est, utilisez la
+touche Escape
(ou Échap
). Comme les
+commandes sont assez complexes, on utilise des abréviations. Ainsi,
+C-c
signifie : appuyez sur Ctrl
et, en
+gardant la touche enfoncée, appuyez sur
+c
. M-g
signifie : appuyez sur la touche
+Meta
et, en gardant la touche enfoncée, sur
+g
.
ESC
à la place de
+la touche Meta
, il faut appuyer sur
+ESC
puis sur l'autre touche.En particulier, par exemple, C-x i
(insertion d'un
+fichier) ne fait pas la même chose que C-x C-i
+(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 C-_
(cf. ci-dessous la gestion des
+erreurs).
Dernière précision : toutes les commandes emacs sont
+accessibles en utilisant leur nom complet, qu'on peut appeler en
+tapant d'abord M-x
. Certaines d'entre elles sont
+disponibles par le biais de raccourcis comme ceux cités plus
+haut : M-g
par exemple a pour nom complet M-x
+goto-line
. 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
+M-c
met en majuscule la première lettre d'un mot quand on
+se souvient que le c est pour capitalize-word).
Emacs a la particularité d'avoir une aide en ligne importante. Pour
+y accéder, lancez emacs tout seul (cf. infra) ou
+tapez C-h
ou encore M-x help
.
C-h
+mais M-?
. Le remplacement est à faire pour toutes les
+commandes d'aide qui suivent.C-h k
vous permet d'obtenir des renseignements
+succints sur une commande donnée. Exemple : vous voulez savoir ce
+que fait la commande M-g
. Tapez C-h k
. Emacs
+vous demande de décrire la commande (key en
+anglais) que vous souhaitez connaître. Tapez alors
+M-g
. Emacs ouvre en 2 la fenêtre et vous dit qu'il s'agit
+de la commande goto-line
, qu'on l'emploie comme
+ceci : M-g <nombre n>
et qu'il s'agit d'aller
+à la ligne n.
C-h t
lance le tutorial officiel d'emacs (en
+anglais).
C-h i
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 TAB
+et M-TAB
, on suit un lien avec Enter
et on
+remonte vers le répertoire père avec u
;
Pour quitter l'aide, on utilise les commandes de manipulation des +buffers (cf. ci-dessous « Manipuler plusieurs buffers en +même temps »).
+ +Vous pouvez obtenir la liste des commandes d'emacs en tapant
+M-x describe-bindings
.
Emacs se lance comme n'importe quel programme sous UNIX. Si vous +tapez :
+ +clipper ~ $ emacs
+
+Emacs se lancera dans une fenêtre. Pour lancer emacs dans votre
+terminal, utilisez l'option -nw
. 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 :
clipper ~ $ emacs maitrise.tex
+
+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
+ +clipper ~ $ emacs --version
+
+Les renseignements donnés ici valent pour cette version. Il est +possible que certaines choses ne fonctionnent pas avec des versions +plus vieilles.
+ +À l'heure actuelle, emacs ressemble à ceci :
+ +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.
+ +Entre les deux se trouve, en gris sur l'image (avec « GNU +Emacs »), la « ligne de mode » (mode line 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.
+ +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
+.tex
, 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.
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.
+ +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 buffer (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é
+*scratch*
: c'est un buffer sans fichier
+associé. *Help*
est un autre exemple de buffer non
+associé : c'est l'aide en ligne.
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.
+ +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 C-x C-f
(nom complet :
+M-x find file
). Emacs vous demande alors quel fichier
+vous voulez ouvrir. Il suffit de compléter le nom du fichier puis
+d'appuyer sur Entrée
, 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 C-x C-f
vous donne accès à l'historique de
+tous les fichiers déjà ouverts par ce moyen.
TAB
. Emacs essaiera de compléter le nom de
+fichier pour vous. C'est ce qu'on appelle la complétion.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 C-x 2
(la fenêtre se coupe en 2
+horizontalement dans ce cas, si vous préférez un découpage vertical,
+utilisez C-x 3
). Pour passer d'un buffer à l'autre,
+faites C-x o
. Pour faire disparaître le buffer où se
+trouve votre curseur, tapez C-x 0
. Pour faire disparaître
+l'autre c'est C-x 1
.
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.
+ +Déplacez votre curseur jusqu'à l'endroit où vous souhaitez insérer
+un autre fichier. Puis tapez C-x i
(M-x
+insert-file
). Emacs suit la même procédure qu'avec C-x
+C-f
: il vous demande quel fichier insérer.
Si vous tapez C-x C-s
(M-x save-buffer
),
+emacs sauvegarde le buffer dans le fichier associé et indique à
+l'écran (dans le mini-buffer) « Wrote
+/users/00/litt/toto/maitrise.tex ». Si vous voulez
+sauvegarder vos modifications dans un autre fichier,
+il faut utiliser la commande C-x C-w
. Le nom complet,
+M-x write-file
est transparent : emacs écrit le
+contenu du buffer dans un fichier qui n'est pas nécessairement celui
+associé au buffer. C-x C-w
peut être pratique pour éditer
+un fichier que vous n'avez pas le droit de modifier.
Tapez C-x C-c
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.
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 C-z
qui
+suspend emacs sans le fermer. Dès que vous voudrez reprendre
+emacs, tapez fg
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, C-z
minimise la
+fenêtre d'emacs.
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.
+ +Bouger d'un(e)... | +Vers l'avant | +Vers l'arrière | +
---|---|---|
caractère | C-b | C-f |
+
mot | M-b | M-f |
+
ligne | C-p | C-n |
+
début/fin de ligne | C-a | C-e |
+
phrase | M-a | M-e |
+
paragraphe | M-{ | M-} |
+
buffer | M-< | M-> |
+
Pour effacer quelques caractères, vous pouvez utiliser les touches
+delete
ou backspace
de votre
+clavier. Évidemment, vous pouvez aussi utiliser des commandes pour
+faire ce travail. C-d
efface le caractère sur lequel se
+trouve le curseur. M-d
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).
Au niveau d'une ligne, C-k
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.
Commande | Nom complet | Action |
---|---|---|
C-d | M-x delete-char | Efface le caractère +sur lequel est le curseur. |
M-d | M-x kill-word | Efface le mot à partir du +curseur. |
M-backspace | M-x backward-kill-word | Efface le +mot précédent. |
C-k | M-x kill-line | Efface la ligne à partir du +curseur |
_ | M-x kill-paragraph | Efface le paragraphe à +partir du curseur. |
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 emacs -nw
), vous
+pouvez utilisez le système de marquage d'emacs. On place une
+« marque » au début du texte à sélectionner avec
+C-espace
. 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).
Commande | Nom complet | Action |
---|---|---|
C-espace | M-x set-mark-command | Poser une +marque |
C-x C-x | M-x +exchange-point-and-mark | Échanger la marque et le point |
M-h | M-x mark-paragraph | Sélectionner tout le +paragraphe |
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 kill ring). Vous pouvez ensuite
+« coller » tout ce qui a été effacé (que ce soit
+une seule grosse suppression ou plusieurs suppressions d'affilée) avec
+C-y
. Pour couper à proprement parler, il faut utiliser
+C-w
(ou M-x kill-region
).
À noter que M-y
permet de naviguer dans l'historique
+du kill ring. C-y
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 M-y
+après.
Pour copier quelque chose (pour le coller ensuite), sélectionner ce
+qu'il faut copier puis faites M-w
.
Pour effectuer une recherche simple vers la fin du fichier, c'est
+C-s
suivi du mot ou de l'expression recherchée. Pour une
+recherche vers le début du fichier, c'est C-r
. 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 C-M-s
. Pour aller à l'occurence
+suivante du mot ou de l'expression correspondant à votre recherche
+(simple ou avec une expression régulière), tapez C-s
ou
+C-r
. Pour annuler votre recherche, tapez
+C-g
).
+
De même, pour les remplacements, emacs vous offre deux
+possibilités. Pour remplacer simplement un mot ou une expression,
+tapez M-%
. Pour faire un remplacement à partir d'une
+expression régulière, c'est M-x
+query-replace-regexp
. 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.
Répondez y
pour remplacer cette occurrence,
+n
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 !
. Pour abandonner le
+remplacement demandé, appuyez sur ESC
.
Quand vous êtes en mode Fill
(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 M-q
+qui réarrange le texte d'un paragraphe de manière harmonieuse.
Vous pouvez également changer la longueur des lignes. Par exemple,
+pour fixer à 20 caractères la longueur des lignes, tapez C-u 20
+C-x f
.
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 M-c
(c comme capitalize. Pour mettre un mot entier en majuscules,
+c'est M-u
(u pour uppercase). Pour le
+mettre en minuscules, c'est M-l
(l pour lowercase). 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.
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 C-t
pour intervertir r et u.
Commande | Nom complet | Action |
---|---|---|
C-t | M-x
+transpose-chars | Intervertit deux lettres |
M-t | M-x
+transpose-words | Intervertit deux mots |
C-x C-t | M-x
+transpose-lines | Intervertit deux lignes |
_ | M-x
+transpose-sentences | Intervertit deux phrases |
_ | M-x
+transpose-paragraphs | Intervertit deux paragraphes |
Si vous vous êtes trompé et que vous souhaitez revenir à l'action
+précédente, tapez C-x u
(ou C-_
, plus facile
+à taper). Vous pouvez revenir en arrière ainsi jusqu'à l'ouverture de
+votre session emacs. Attention, C-_
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.
C-_
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 C-_
. Dans certains cas, les
+C-_
en série et imbriqués peuvent avoir des conséquences
+étonnantes.Pour revenir carrément à l'état où était votre fichier au moment où
+vous l'avez sauvegardé pour la dernière fois, tapez M-x
+revert-buffer
.
C-g
.Emacs affichera « Quit » dans le mini-buffer +et abandonnera la commande en cours.
+ +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 M-!
. 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 « (Shell command succeeded with
+no output) ». Sinon, il coupe sa fenêtre en deux et
+vous donne la sortie de la commande.
Pour exécuter une commande shell puis insérer le résultat de cette
+commande dans le buffer, tapez plutôt C-u
+M-!
. Exemple : vous souhaitez insérer dans votre fichier
+la date exacte. Tapez C-u M-!
, puis emacs vous demande
+quelle commande vous souhaitez exécuter. Répondez
+« date ». Emacs insérera le résultat de la
+commande date
directement dans le fichier, au point où se
+trouve votre curseur.
Vous pouvez même demander un terminal dans un nouveau buffer, qui
+s'appelle précisément *Shell*, avec la commande M-x
+shell
. Attention, ce terminal ne traite pas les séquences
+d'échappement, pour cela il faut plutôt faire M-x term
+qui lance *terminal*.
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 à C-u
+<nombre>
. Ainsi, C-u 50 C-p
permet de
+répéter 50 fois la commande C-p
et donc de remonter de 50
+lignes. C-u 5 !
vous permet d'insérer 5 points
+d'exclamation.
Dans le cadre de commandes plus complexes, C-u
+<nombre>
agit comme un modificateur. On l'a vu par
+exemple pour changer la taille des lignes.
M-/
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 M-/
. Emacs complètera
+tout seul. Si d'autres mots commençant par
+« anti » apparaissent déjà dans le buffer, taper
+de nouveau M-/
permet de cycler entre tous les mots
+possibles.
On prétend qu'emacs sait aussi faire le café, en attendant, vous
+pouvez toujours vous faire psychanalyser par lui. Essayez donc
+M-x doctor
!
Emacs est extrêmement configurable. Pour modifier quelque chose à
+sa configuration, il faut modifier le fichier .emacs
se
+trouvant dans votre répertoire personnel. Le .emacs
de la
+config conscrits 2002 contient une petite introduction au langage
+utilisé ainsi qu'aux configurations de base que l'on peut faire.
-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 -éditeur de textes n'est donc pas un traitement de textes). -
+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 éditeur de textes n'est donc pas un +traitement de textes).
--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 compilateur de -textes). 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). -
+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 compilateur de +textes). 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).
-
-Pour apprendre progressivement à utiliser les éditeurs emacs
-et vim
, vous pouvez consulter les 7
-cercles des éditeurs de textes.
-
Pour apprendre progressivement à utiliser les éditeurs
+emacs
et vim
, vous pouvez consulter les 7 cercles des éditeurs de textes. Emacs
+fait par ailleurs l'objet d'un tutorial
+spécifique.