Common Lisp sous Emacs

Écrit en Lisp, l'éditeur de texte Emacs est tout désigné pour programmer efficacement dans tous ses dialectes, dont le Common Lisp. Cependant, son maniement est très éloigné des paradigmes d'autres éditeurs de texte plus élémentaires. Voici un guide pour interagir avec Common Lisp dans Emacs, suivi de liens plus approfondis.

Démarrage rapide

Pour les familiers d'Emacs, il suffit de faire M-x run-lisp dans un buffer Lisp pour lancer Common Lisp. Ensuite, C-c C-e permet d'évaluer l'expression sous le curseur, et C-c C-r pour évaluer toute une région.

Si le paragraphe précédent vous met mal à l'aise, la suite vous conviendra peut-être mieux.

Démarrage en détail

Lancer Emacs

Dans un terminal, simplement taper emacs. Sous Gnome, Unity ou KDE, on peut également l'invoquer en tapant Alt+F2 pour invoquer le lanceur, et y entrer emacs.

Le buffer par défaut d'Emacs devrait apparaître, proposant plusieurs liens, dont un vers le tutoriel et un autre vers le manuel. Le tutoriel est recommandé pour apprendre les raccourcis fondamentaux. Le manuel est très complet et divisé en section qui touchent différents aspects ou modes d'Emacs. À parcourir quand le temps le permet.

Ouvrir un fichier

Taper Ctrl-x Ctrl-f (aussi écrit C-x C-f en abrégé). Le nom de fichier est demandé en bas de la fenêtre, dans le minibuffer :

Find file: ~/

Entrer le nom d'un fichier Lisp, par exemple :

Find file: ~/test.lisp

puis Entrée.

Le fichier est ouvert, son nom s'affiche dans une barre en bas de la fenêtre (modeline), qui signale également que le mode Lisp est activé :

-U:---   test.lisp       All L1      (Lisp)

Dès à présent, le programme Lisp peut être entré et enregistré avec C-x C-s. Ensuite, il peut être chargé dans un terminal qui exécute Common Lisp. Mais on peut mieux faire.

Interagir avec Common Lisp

L'interaction avec Common Lisp permet d'envoyer directement des morceaux du fichier Lisp à un processus Common Lisp intégré dans Emacs, bénéficiant ainsi de toutes les facilités d'édition qu'apporte Emacs, même pour le processus Common Lisp.

D'abord, il est préférable de scinder la fenêtre actuelle pour garder un œil sur le fichier Lisp et le processus Common Lisp en même temps. C-x 2 (Ctrl-x puis 2 sans appuyer sur Ctrl). On obtient deux buffers qui visitent le même fichier test.lisp.

Ensuite, taper Alt-x, et Emacs attend le nom d'une commande dans le minibuffer :

M-x 

Entrez y run-lisp :

M-x run-lisp

puis Entrée. Le buffer est remplacé par l'interpréteur CLisp, qui se comporte de façon identique que dans un terminal. Taper C-x o pour situer le curseur dans le buffer test.lisp.

Pour envoyer l'expression Lisp sous le curseur, il suffit de taper C-c C-e. L'interpréteur reçoit et répond aussitôt. Par exemple, si test.lisp contient :

(+ 1 2 3 4)

et que le curseur est positionné sur le 4, alors en tapant C-c C-e, l'interpréteur CLisp réagit :

[1]> 10

N'importe quelle expression Lisp est passée telle quelle à l'interpréteur, comme si elle y était directement tapée.

Fermeture

Pour sauvegarder le fichier test.lisp, taper C-x C-s, puis C-x C-c pour quitter Emacs. Le minibuffer demandera confirmation avant de terminer le processus CLisp, y répondre par oui ou non.

Pour aller plus loin

Emacs comporte une documentation exhaustive :

FMdKdD -- mai 2011