Premiers pas avec Emacs et Ada

De Ensiwiki
Aller à : navigation, rechercher


Découvrir Emacs avec le langage Ada

Emacs ... un éditeur de texte

Emacs est un éditeur de texte, très puissant, extensible, même s'il n'est pas toujours très intuitif. Il est très puissant, certains disent qu'il peut tout faire sauf le café, ils se trompent.

D'abord, qu'est-ce que ça veut dire, un « Éditeur de texte » ? Vous avez sûrement déjà utilisé un « Traitement de texte », qui permet de taper du texte, de le mettre en forme (gras, italique, taille et choix des polices, …). Un éditeur de texte édite du texte brut : pas de mise en forme, pas de dessins, juste du texte. Une suite de caractères, quoi. Mais en informatique, on trouve du texte brut partout : langage de programmation, fichiers de configuration de beaucoup de logiciels, …

On pourrait essayer d'éditer le texte d'un programme Ada avec un traitement de texte classique, mais on aurait énormément de fonctionnalités inutiles, et par contre, il manquerait énormément de choses.

Ouvrir un fichier

Commencez par télécharger le fichier hello.adb, et sauvegardez-le sur votre compte.

Un moyen simple d'ouvrir ce fichier dans Emacs est de lancer, en ligne de commande :

  telesun> emacs hello.adb

Un autre moyen, c'est de lancer Emacs, puis dans le menu File, choisir Open File…, et choisir le fichier à ouvrir.

[1]

Quand on a plusieurs fichiers sur lesquels on veut travailler en même temps, il faut ouvrir chaque fichier depuis une fenêtre Emacs déjà ouverte, sinon, on lance beaucoup de processus Emacs, c'est moins pratique, et ça consomme beaucoup plus de ressources de l'ordinateur.

Emacs et l'Ada

Vous avez maintenant une fenêtre Emacs ouverte, avec le contenu du fichier hello.adb affiché.

Coloration syntaxique

Premier constat : les mots clés (begin, end, …) sont en couleur. Ah, mais on avait pourtant dit qu'il n'y avait pas de mise en forme dans un fichier texte ?!? Et non, il n'y a pas de couleurs dans le fichier, mais Emacs nous l'affiche quand même avec des couleurs. Vérifiez si vous voulez en faisant ”less hello.adb” dans un terminal, il n'y a pas de couleur.

[2]

Indentation

Deuxième constat : le code est affreux. C'est indenté n'importe comment. Ne vous avisez pas de rendre un code comme celui-là à vos enseignants !!! Bon, pas de panique, Emacs sait faire l'indentation très bien. Dans le menu « Edit », faites « Select All », puis dans le menu « Ada », sous-menu « Edit », faites « Indent lines in selection ». Et hop, magie !

Plus simple, pour indenter une ligne, il suffit d'appuyer sur la touche TAB. Au final, on a toujours du code parfaitement indenté, et sans grand effort.

Compilation

Le programme Ada que vous avez sous les yeux est un programme « source », c'est à dire lisible par un humain, mais pas exécutable directement par la machine. Pour l'exécuter, il faut d'abord le compiler.

Essayons d'abord en dehors d'Emacs. Dans un terminal, faites :

  telesun> gnatmake hello.adb

Ah, pas de chance, il y a une erreur de syntaxe dans le fichier. gnatmake vous dit que c'est à la ligne 6. On peut donc ouvrir le fichier, aller à la ligne 6, et on pourrait corriger l'erreur.

Mais on va essayer autrement : depuis Emacs, dans le menu Tools, faites Compile. En bas de la fenêtre, Emacs vous demande la commande qu'il faut lancer pour compiler. Tapez gnatmake hello.adb, puis entrée. Emacs lance cette commande comme si vous l'aviez fait depuis un terminal, mais avec un petit quelque chose en plus : le message d'erreur est en couleurs, et surtout, on peut cliquer dessus (clic du milieu), Emacs vous amène à l'endroit où se trouve l'erreur, il n'y a plus qu'à la corriger.

[3]

Sauver

L'erreur de syntaxe est corrigée à l'écran, mais ce n'est pas le fichier hello.adb qu'on a édité, c'est une image en mémoire de ce fichier (ce qu'Emacs appelle un « buffer »). Il nous reste à sauver pour pouvoir recompiler : menu File, Save.

Recompilez le programme comme précédemment (Menu Tools, Compile), et exécutez-le en ligne de commande :

  telesun> ./hello

[4]

Édition basique

On va ajouter la ligne suivante au programme :

Put_Line("L'ENSIMAG, c'est super!");

Placez votre curseur à la fin de la ligne

Put_Line("Bienvenue à l'ENSIMAG!!");

et appuyez sur la touche Entrée. On parlait d'indentation tout à l'heure, justement, Emacs place le curseur à l'endroit où il faut pour que ce soit correctement indenté.

Tapez Put, puis, pour ne pas trop se fatiguer, faites M-/, c'est à dire, appuyez sur la touche Alt, puis sur la touche « / », puis relâchez. Hop, Emacs complète avec les autres mots qui commencent pareil et que vous avez déjà tapés. Là, ça tombe pile : Put_Line, et on peut continuer. Si la complétion n'avait pas été la bonne, on aurait pu refaire M-/ autant de fois que nécessaire pour tomber sur la bonne.

Exploration du menu Options

Les fonctionnalités les plus courantes d'Emacs sont disponibles dans le menu. Regardons le menu Options.

Par exemple, sélectionnez Paren Match Highlighting. Cette option active la correspondance visuelle des parenthèses. Essayez de taper, par exemple, « X : Integer := 4 * (3 - (2 + 1)); ». Quand le curseur est sur une parenthèse ouvrante, ou derrière une parenthèse fermante, la parenthèse correspondante se met en couleur.

[5]

Il y en a d'autres. On peux noter en particulier :

  • « Active region highlighting » (mise en évidence de la sélection quand on sélectionne du texte au clavier, avec Ctrl-espace) et « C-x/C-c/C-v Cut and Paste » (raccourcis claviers usuels sous Windows pour le copier/coller) pour être moins dépaysés si vous avez l'habitude de Windows, voire Mac OS X.
  • Show/Hide → Speedbar, pour naviguer dans vos fichiers et vos fonctions.
  • Options → Customize Emacs → Specific Option → “inhibit-splash-screen” : toggle pour mettre a on, puis State → Save for future sessions : Désactiver l'écran d'accueil.

Notez que les options ne s'appliquent qu'au processus Emacs courant. Pour les sauvegarder pour la prochaine fois, faites Save options dans le même menu.

Le fichier .emacs

Nous allons maintenant aller un peu plus loin dans la configuration d'Emacs. Ouvrez le fichier .emacs, à la racine de votre compte (menu File, Open File, ou bien C-x C-f ~/.emacs RET, c'est à dire Control-x, puis Control-f, le nom du fichier .emacs, puis Entrée).

Le début du fichier est votre configuration, telle qu'elle vous est proposée par l'équipe pédagogique. Nous avons changé le moins de choses possibles pour que vous ne soyez pas dépaysés si vous avez à utiliser Emacs sur d'autres machines, mais n'hésitez pas à jouer avec votre configuration.

À la fin du fichier, vous devriez trouver ce que « Save Options » a fait si vous avez suivi les instructions quelques lignes plus haut.

Raccourcis utiles

La refcard Emacs contient un tas de raccourcis utiles. Elle est disponible ici (C-x veut dire « Ctrl-x », M-y veut dire « Alt-y », C-x h C-M-\ veut dire « Ctrl-x, puis relâcher, puis h, puis relâcher, puis Ctrl-Alt-backslash (donc, sur un clavier azerty, Ctrl-Alt-AltGr-8) » par exemple) emacs22-refcard.pdf.

Avec de l'expérience, vous n'aurez plus besoin de votre souris, le clavier va beaucoup plus vite pour la plupart des tâches : en utilisation courante, on a les deux mains sur le clavier, les raccourcis clavier sont à une fraction de seconde de vos doigts …

Par ailleurs savoir utiliser son éditeur de texte entièrement au clavier est particulièrement utile, quand on se connecte avec ssh : En mode graphique (ssh -X), l'interface est souvent trop lente pour être utilisable, et quand on ne dispose pas de l'option graphique (-X ou -Y), comme avec Putty, on ne dispose plus que des commandes du clavier.

Aller plus loin

Nous n'avons vu que le strict minimum pour commencer avec Emacs, mais apprendre vraiment à se servir de cet éditeur prend des années. Il est vivement conseillé de lire une documentation plus complète, comme l'une proposée dans la page d'accueil.