En tant que nouvel utilisateur, vous souhaiterez sans
doute lancer Emacs juste pour le découvrir et le tester.
Une fois dans Emacs, vous pourriez ne pas savoir en
sortir. Alors, si vous n'avez jamais utilisé Emacs
auparavant, essayez tout de suite. A l'invite de votre
shell, entrez emacs puis pressez "Entrée". Emacs
devrait démarrer. Dans le cas contraire, soit il n'est pas
installé, soit il n'est pas dans votre chemin d'accès
(PATH).
Maintenant que vous savez lancer Emacs, vous avez besoin
d'apprendre a en sortir. La
combinaison de touches permettant de quitter Emacs est
C-x C-c. La notation C-x signifie
maintenir enfoncée la touche Ctrl et presser sur
x. Dans ce cas, il faut maintenir la touche
Ctrl pressée, et presser c
pour terminer l'opération.
Les combinaisons de touches utilisées dans Emacs
peuvent vous sembler bizarres, étranges et peut-être même
inconfortables dans un premier temps -- par exemple si
vous êtes un utilisateur de vi. À la différence
de vi, Emacs n'a pas de modes séparés pour
l'édition et l'entrée de commandes.
Pour récapituler: emacs lance Emacs. C-x C-
c permet de le quitter.
Lorsqu'Emacs démarre, il utilise la totalité de la fenêtre (ou de l'écran si vous l'utilisez sur une console plutôt que sous X Window). Vous verrez un menu en haut de l'écran, du texte dans la partie principale et deux lignes en bas de l'écran.
Cela ressemblera à quelque chose de ce type:
+------------------------------------------------------------- ---------+ |Buffers Files Tools Edit Search Mule Help | | | |Welcome to GNU Emacs, one component of a Linux-based GNU system. | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All---- ---------| |For information about the GNU Project and its goals, type C-h C-p. | +------------------------------------------------------------- ---------+
NOTA: Emacs remplira normalement
l'écran/fenêtre dans sa totalité. J'ai réduit sa
reproduction ci-dessus dans le but de gagner un peu de
place. Vous verrez également un message de bienvenue
lorsque vous lancerez Emacs pour le première fois. Je
l'ai également omis et remplacé par ``...''.
Le message de bienvenue identifie simplement la
version exacte d'Emacs que vous utilisez et propose
également l'aide en ligne.
La ligne la plus haute de l'interface d'Emacs est un menu. Si vous êtes sous X, vous reconnaîtrez les traditionnels menus déroulants auxquels vous pouvez accéder avec votre souris. Sinon vous devrez utiliser les raccourcis clavier (que nous n'aborderons pas ici) pour accéder aux menus.
La première des deux dernières lignes de l'interface d'Emacs est avant tout une barre d'état. Elle rassemble les informations sur le buffer que vous utilisez, le mode dans lequel Emacs se trouve, et d'autres choses variées. Pour l'instant, retenez simplement son emplacement.
La dernière ligne est appelée le minitampon (mini- buffer). Elle est séparée du buffer principal par la barre d'état que nous venons d'évoquer. Vous pouvez l'assimiler à la ``ligne de commande'' d'Emacs. C'est ici que les commandes que vous assignez à Emacs apparaissent ainsi que les messages affichés en retour des traitements réalisés.
En fait, ce que je viens d'appeler barre d'état est
en général appelé ligne de mode (mode line). C'est là
qu'Emacs affiche les informations sur le ou les mode(s)
courants utilisés, mais également des choses aussi
variées que l'heure et la date, le numéro de ligne
en cours, la taille du fichier, et presque tout ce
que vous pourrez souhaiter y voir.
Cette section couvre les principaux termes de la terminologie d'Emacs que vous rencontrerez lorsque vous utiliserez ou vous documenterez sur Emacs.
À la différence d'autres éditeurs, lorsque vous ouvrez un fichier dans Emacs, il ne reste pas constamment ouvert tout au long du temps pendant lequel vous le traitez car Emacs transfère une copie du contenu de ce fichier dans un tampon (buffer), sorte de zone de travail en mémoire. Pendant que vous éditez le tampon et travaillez sur vos données, rien n'est modifié sur le disque. Ce n'est que quand vous sauvegardez le buffer qu'Emacs met à jour le fichier sur le disque. Cette approche a des avantages et des inconvénients, mais il est surtout important d'assimiler cette façon de procéder.
C'est pourquoi vous verrez le terme ``buffer'' utilisé dans la documentation d'Emacs, les modes, les paquetages, etc... Réalisez simplement que buffer signifie ``une copie du fichier actuellement en mémoire.''
Dans le jargon Emacs, vous entendrez souvent parler ou verrez des références au point. D'une façon générale, le point correspond au curseur. La distinction entre le point et le curseur n'est probablement pas importante lorsque vous commencez à travailler avec Emacs. Mais si vous êtes curieux, représentez-vous cette distinction de la façon suivante : le curseur est la représentation visuelle du point. Le curseur est toujours ``sur'' la position d'un caractère particulier dans le buffer courant. Le point, à contrario, se situe dans l'espace existant entre les caractères du buffer. Aussi on peut dire que si le curseur se situe sur la lettre `h' du mot `thé', alors le point se trouve entre le `t' et le `h'.
Comme beaucoup d'éditeurs modernes, Emacs permet de réaliser des opérations (indentation, vérification orthographique, formatage, couper, copier, coller, ...) sur une section entière du buffer. Vous pouvez surligner (ou ``marquer'') une bloc de texte en utilisant la souris ou le clavier et réaliser ces opérations uniquement sur le bloc de texte sélectionné. Dans Emacs, cette partie de texte est appelée région.
Grâce au World Wide Web, la notion de fenêtre sous Emacs est beaucoup plus facile à expliquer. Lorsque vous lancez Emacs, il remplit par défaut la toute la fenêtre, comme nous l'avons vu ci-dessus. Lorsque vous ouvrez un fichier, il rempli la totalité de l'aire d'édition d'Emacs - c'est-à-dire l'espace se trouvant entre le menu et la barre d'état -. Cette espace est appelé une fenêtre.
Tout comme les pages HTML (Web) qui peuvent se diviser en de multiples fenêtres, chacune correspondant à un fichier HTML, l'affichage d'Emacs peut être divisé en plusieurs fenêtres. Chaque fenêtre affiche le contenu d'un buffer. Nous en verrons un exemple ultérieurement.
Cette section aborde les manipulations de base sous Emacs. Comme sur tout éditeur performant, tout ce que vous pouvez faire avec Emacs peut être fait en quelques appuis de touches.
Si vous êtes un utilisateur de vi, l'utilisation des touches k, j, l, h pour se
déplacer sur la ligne supérieure, la ligne inférieure, sur
le caractère suivant ou précédent vous a sans doute demandé pas mal
d'apprentissage. En fait, ces manipulations peuvent demander
plusieurs heures, voire plusieurs semaines, d'apprentissage
avant pouvoir facilement se déplacemer dans un fichier
par l'intermediaire des nombreuses combinaisons de touches
disponibles sous vi.
Emacs n'est pas différent. Il existe plusieurs
combinaisons de touches et commandes à apprendre. Tout
comme avec vi, vous avez seulement besoin de
maîtriser les principales pour réaliser la plupart de vos
travaux. Puis, le temps passant, vous pourrez
tranquillement étendre votre connaissance de ces
raccourcis, et trouverez alors des manières plus rapides
de faire les choses.
Comme nous le verrons bientôt, Emacs utilise au
maximum les combinaisons de touches. N'étant pas un
éditeur modal comme vi, vous n'avez pas à
vous soucier de savoir si vous êtes en ``mode
commande'' ou ``en mode édition'' avant d'essayer de
déplacer le curseur ou d'exécuter une commande. Au
lieu de cela pressez simplement la bonne combinaison
de touches et Emacs fera ce qu'il a à faire
(normalement).
Les touches les plus utilisées par Emacs sont
abréviées dans la documentation par C (pour
Control ou Ctrl) et M (pour Meta). Si les
claviers récents de PC possèdent une ou plusieurs
touches Ctrl, peu disposent d'une touche
Meta. Vous pouvez mentalement substituer
Esc ou Alt à la touche Meta. Dans la
plupart des cas, Esc et Alt font la
même chose.
Aussi lorsque vous rencontrerez dans la
documentation d'Emacs une référence à C-x f,
rappelez-vous qu'elle signifie ``presser Ctrl-x puis
f.'' De même si vous voyez une référence à quelque
chose du genre M-x shell, cela signifie
``presser Alt-x puis taper le mot shell''.
Maintenant que vous maîtrisez ces abréviations particulières, abordons la liste des raccourcis les plus communs permettant de se déplacer dans un buffer :
Raccourcis Action
-----------------------------------
C-p Monter d'une ligne
C-n Descendre d'une ligne
C-f Avancer d'un caractere
C-b Reculer d'un caractere
C-a Atteindre le debut de la ligne
C-e Atteindre la fin de la ligne
C-v Se deplacer d'une page vers le bas
M-v Se deplacer d'une page vers le haut
M-f Avancer d'un mot
M-b Reculer d'un mot
M-< Atteindre le debut du buffer
M-> Atteindre la fin du buffer
C-g Abandonner l'operation courante
-----------------------------------
De plus, comme vous devez l'espérer, les touches du
curseur (les touches fléchées) doivent normalement
fonctionner de manière habituelle. Ce n'est peut-être
pas le cas de votre touche Backspace
(Delete). Mais ça c'est une autre histoire. :-(
Bien, maintenant que vous savez vous déplacer au sein d'un buffer, comment ouvrir et enregistrer des fichiers ? Rechercher ? Voici quelques commandes de base.
Avant d'énoncer ces commandes, évoquons rapidement la façon dont elles fonctionnent.
Tous les « raccourcis clavier » d'Emacs (les choses
du genre M-x quelque chose ou C-quelque
chose) ne sont en fait que des liens vers des
fonctions d'Emacs. Vous pouvez appeler chacune des ces
fonctions en tapant M-x nom-de-la-fonction
puis Entrée. Vous pouvez également utiliser
le raccourci clavier de propre à cette fonction (si
elle en possède un)
Par exemple, la fonction d'Emacs permettant
d'enregistrer un buffer sur le disque est appelée
save-buffer. Par défaut, il revient au même
de taper C-x C-s. Vous pouvez donc au choix
utiliser le raccourci pour enregistrer le buffer
courant, ou taper M-x save-buffer pour
parvenir au même résultat.
La plupart des fonctions courantes ont un raccourci par défaut. Quelques uns sont listés ci-dessous.
Raccourci Fonction Description
----------------------------------------------------------
----
C-x C-s save-buffer Enregistre le buffer
courant
C-c C-f find-file Ouvre un fichier
C-s search-forward Recherche avant d'un chaine
C-r search-backward Recherche arriere d'une
chaine
replace-string Recherche et remplacement
d'une chaine
replace-regexp Recherche et remplacement
d'une chaine en utilisant des expressions regulieres
C-h t help-with-tutorial Utilisation du didacticiel
interactif
C-h f describe-function Affiche de l'aide sur une
fonction
C-h v describe-variable Affiche de l'aide sur une
variable
apropos
C-h f view-emacs-FAQ Affiche la FAQ d'Emacs
C-h i info Lire la documentation
d'Emacs
----------------------------------------------------------
----
Si vous testez quelques unes des ces fonctions,
vous constaterez que des informations supplémentaires
vous seront demandées. Elles le seront toujours par le
biais du mini-buffer. Cela est similaire à
l'utilisation des commandes : de vi
ou d'autres commandes utilisées par votre shell Unix
favori.
Emacs possède littéralement des centaines de fonctions intégrées disponibles. La liste ci-dessous est un minuscule échantillon qui rassemble celles que j'utilise régulièrement. Reportez-vous à l'aide en ligne pour obtenir une liste complète des fonctions disponibles.
Comme beaucoup de shells Unix (bash, csh, tcsh,
...) Emacs offre la complétion des commandes via la
touche Tab. En fait, la commande de
complétion sous bash a été calquée sur celle
d'Emacs. Donc, si vous utilisez cette fonctionnalité
sous bash, vous devriez vous sentir comme chez vous.
À titre d'exemple, essayez M-x search et
pressez Tab. Emacs ajoutera un trait d'union
pour indiquer qu'il existe plusieurs
complétions possibles. Pressez de nouveau
Tab et Emacs vous présentera la liste des
commandes correspondantes dans laquelle vous n'aurez
plus qu'à choisir. Remarquez qu'il présente cette
liste dans une nouvelle fenêtre. Il divise
temporairement votre affichage en deux fenêtres: l'un
contenant le buffer que vous éditez et le second la
liste de complètement correspondant à ``search-''.
Vous pouvez appuyer sur C-g pour sortir du
processus de sélection et fermer cette nouvelle fenêtre.
Emacs est livré avec un didacticiel en ligne qui vous guidera au travers des fonctionnalités d'édition de base et les fonctions que tout le monde devrait connaître. Il explique également comment utiliser les autres systèmes d'aide d'Emacs.
Je vous recommande vivement de consacrer un peu de
temps à ce didacticiel si vous projetez de découvrir Emacs
de façon sérieuse. Comme nous l'avons évoqué ci-dessus,
vous accédez au didacticiel via C-h t (Ndt: t
pour "Tutorial"). Le didacticiel est pédagogique et est
destiné au personnes se lançant sur Emacs.
Si vous utilisez Emacs sous X, vous verrez le menu Help à l'extrême droite de la barre de menu. Si vous parcourez ce menu d'Aide, vous constaterez que quelques fonctions sont présentées avec leur raccourcis clavier sur leur droite.
Finalement, pour consulter le gros de la documentation
livrée avec Emacs, tapez M-x info ou C-h
i ce qui ouvrira Info, le navigateur de documentation
d'Emacs.