É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.
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.
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.
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.
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.
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.
Emacs comporte une documentation exhaustive :
C-h t
) est
indispensable.
C-h m
pour l'aide sur les modes du buffer
courant (et donc le mode Lisp),
C-h b
pour la liste des raccourcis.
C-h r
pour le manuel complet d'Emacs. Les deux
sections en rapport sont "Lisp Interaction Buffers"
(C-h r g lisp interaction Entrée
) et
"External Lisp" (C-h r g external Entrée
).
C-h ?
pour toutes les options d'aide.
FMdKdD -- mai 2011