Page précédente Page suivante Table des matières

2. Lancer Emacs

2.1 Exécuter & Quitter Emacs

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.

Ce que vous verrez

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 barre de Menus

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 barre d'état et le Mini-buffer

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.

2.2 Un peu de Terminologie

Cette section couvre les principaux termes de la terminologie d'Emacs que vous rencontrerez lorsque vous utiliserez ou vous documenterez sur Emacs.

Buffers & Fichiers

À 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.''

Point & Région

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.

Fenêtres

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.

2.3 Les bases du clavier

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.

Touches de commande (Meta, Esc, Control, et Alt)

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''.

Déplacement dans un tampon (buffer)

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. :-(

Les commandes essentielles

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.

Complétion

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.

2.4 Didacticiel, Aide, & Info

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.


Page précédente Page suivante Table des matières