Utilisation d'EMACS.
Si ce n'est déjà fait, installez GNU EMACS, et SLIME-SBCL sur votre ordinateur: quelques simples recherches sur internet vous permettent de trouver la bonne implémentation adaptée à votre environnement (Windows, Linux, Mac, ...).
Installation de SLIME sous Linux: voir un exemple plus bas.
Travailler sous EMACS peut être très rapide, à condition de se familiariser avec les raccourcis-claviers.
Je vous propose quelques raccourcis ci-dessous.
Ce rappel n'est pas exhaustif, mais il permet de se débrouiller rapidement avec Emacs.
Pour en savoir plus: faire C-h b pour obtenir tous les raccourcis-clavier (dans le système de codage défini!).
Vous pouvez, aussi, lire le tutoriel sur Emacs dans votre langue: Dans le menu d'Emacs, cliquez sur Help, puis sur Emacs Tutorial (choose language). Dans la fenêtre qui s'ouvre cliquez sur French.
Dans la suite, C représente la touche Ctrl et M la touche Alt (s'il n'y a pas de touche Méta).
Bon courage aux débutant!
Et n'oubliez pas de mettre à jour vos fichiers si vous utilisez des copies de mes pages (elles peuvent évoluer!)
Mieux! Concaténez tous les articles dans Emacs en les séparant par: ">>>>". Pour passer rapidement d'un article à l'autre, lancez une recherche de la chaîne ">>>>" (toujours dans Emacs).
C-v avancer d'une page
M-v reculer d'une page
C-f avancer d'une lettre
C-b reculer d'une lettre
M-f avancer d'un mot
M-b reculer d'un mot
C-a aller en début de ligne
C-e aller en fin de ligne
M-a aller en début de paragraphe
M-e aller en fin de paragraphe
Alt+< ou Ctrl+(Fn)+Début d'aller au début du tampon
Ctrl+(Fn)+Fin d'aller à la fin du tampon ((Fn) est la touche de fonction sur certains ordinateurs)C-M-f avancer d'un mot ou d'une parenthèse (tout le contenu de la parenthèse est sauté)
C-M-b reculer d'un mot ou d'une parenthèse (tout le contenu de la parenthèse est sauté)
C-M-n avancer d'une liste
C-M-p reculer d'une liste
C-M-d descendre d'un niveau de liste
C-M-u monter d'un niveau de liste
C-M-a reculer à la parenthèse se trouvant en première colonne (par exemple dans le mode fundamental)
C-M-e avancer après la parenthèse fermant celle obtenue avec C-M-a
C-M-k supprime l'expression après le point
C g annule un début de commande
C-x 0 ferme la fenêtre courante (0 est un chiffre)
C-x 1 réduit Emacs à une seule fenêtre
C-x 2 ouvre une deuxième fenêtre dans Emacs avec une séparation horizontale
C-x 3 ouvre une deuxième fenêtre dans Emacs avec une séparation verticale
C-x o met le curseur dans l'autre fenêtre (o est une lettre)
C-d efface le caractère sous le curseur
M-d efface le mot qui suit le curseur
C-esp marque le début d'une sélection (faire C-f ou M-f ou C-e ou M-e, pour agrandir la sélection)
C-w efface la sélection (voir aussi C-y pour coller)
M-w copie la sélection (voir aussi C-y pour coller)
C-x C-l met en minuscules la région sélectionnée (confirmer cette volonté avec la touche espace)
C-x C-u met en majuscules la région sélectionnée (confirmer cette volonté avec la touche espace)
C-k supprime le texte du curseur à la fin de la ligne
C-x u défait l'effet de la dernière commande (la commande a la valeur d'un "Undo" tant qu'il y a une action dans la pile, sinon la commande fait un "redo")
C-y fait réapparaître le texte où l'on veut, autant de fois que l'on veut, et le garde en mémoire
C-s recherche d'un mot vers le bas: taper le mot dans le mini-tampon
C-r recherche d'un mot vers le haut: taper le mot dans le mini-tampon
M-% remplace un mot par un autre: taper mot1 ret mot2 ret, et répondre y ou n pour chaque occurrence ou : pour tout.
M-/ propose la complétion d'un mot en cours de frappe. On peut retaper M-/ pour avoir d'autres suggestions.
C-x C-f ouvre un fichier (ancien ou nouveau): entrer le chemin et le nom du fichier dans le
mini-tampon
C-x s sauvegarder les fichiers (répondre au choix proposé: y, n, ...)
C-x C-s sauvegarder le fichier en cours (et seulement lui)
C-x Cw sauvegarder le tampon (buffer) dans un autre fichier: entrer le chemin et le nom du fichier dans le mini-tampon
C-x C-b changer de tampon (buffer) (choisir dans la liste proposée)
C-x b retourner au tampon (buffer) par défaut ou ouvrir un nouveau tampon
C-x C-e exécute l'expression lisp si le curseur se trouve à droite de l'expression lisp et affiche le résultat dans le mini-buffer
C-x C-h permet d'obtenir la liste de tous les raccourcis.
M-x permet d'exécuter des commandes (nombreuses!): taper la touche TAB (2 fois) et
choisir la commande (voir l'aide: C-h c)
C-x C-c quitte Emacs en sauvant les tampons (ou buffers)
C-x k demande la sauvegarde du tampon, puis supprime le tampon
C-x C-q met ou enlève l'option de lecture seule sur le tampon courant
C-z icônifie Emacs (pour désicônifier: cliquer sur l'icône Emacs)
C-x 26#26 + séquence de touches + C-x 27#27 fait une macro correspondant à la séquence de touches
C-/ défaire l'action d'une commande qui a modifié le tampon (buffer) d'une façon non désirée
C-M q permet d'indenté la S-expression sélectionnée (LISP)
L'AIDE:
C-h ? aide sur l'aide (ou M-x help)
C-h lettre pour avoir de l'aide sur le type d'aide représentée par la "lettre"
C-h r ouvre le manuel d'Emacs
C-h c commande pour avoir de l'aide sur une "commande" (affichée dans le mini buffer en bas). Exemple: C-h c C-p >> C-p runs the command previous-line
C-h k commande pour avoir une documentation plus fourni sur une "commande"
C-x 4 C-o pour revenir au buffer précédent
C-M-v pour faire défiler l'aide
C-h f nom_de_fonction pour afficher les informations sur la fonction
C-h a mot-clé pour afficher toutes les commandes qui contiennent le "mot-clé"
C-h i ouvre le tampon *info* pour lire les manuels en ligne
C-h b liste les fonctions associées aux touches
C-h m décrit le mode courant
Installer
slime-sbcl dans Emacs.
(sous
LINUX)
Dans le shell de
Linux :
Tapez, successivement, ce qui suit en acceptant les téléchargements
proposés :
sudo apt-get install sbcl curl -O http://beta.quicklisp.org/quicklisp.lisp sbcl --load quicklisp.lisp
Vous êtes alors sous SBCL. L’invite * montre que SBCL attend une
commande.
Dans SBCL :
Tapez, successivement, ce qui suit :
(quicklisp-quickstart:install) (ql:quickload "quicklisp-slime-helper")
Pour fermer SBCL, tapez :
(exit)
Ouvrez Emacs (On suppose qu’il est installé!). Dans Emacs demandez l’ouverture d’un fichier et tapez :
.emacs
Le fichier de configuration de Emacs s’ouvre.
Ajoutez à la fin du fichier de configuration :
(load (expand-file-name "~/quicklisp/slime-helper.el")) ;; Précisez le chemin de "sbcl" pour votre implémentation (setq inferior-lisp-program "/usr/bin/sbcl")
Enregistrez le fichier (save) et fermez-le (close). Ouvrez Emacs à nouveau (donc avec sa nouvelle configuration).
Tapez dans le mini-tampon (mini-buffer) :
Alt-X slime (ou M-x slime, si touche méta)
Vous pouvez, maintenant, travailler avec Common Lisp REPL !
SLIME-REPL:
C-Enter ferme les parenthèses et compile l'expression
C-c C-c interruption du processus lisp
, demande de commande:
quit-Enter quitte Slime et ses tampons
(load "~/chemin/nom-de-fichier.extension") charge et compile le fichier.
(load (compile-file "~/chemin/nom-de-fichier.extension")) compile d'abord le fichier, puis charge le résultat de la compilation.
C-M-a va à la précédente parenthèse se trouvant en première colonne
C-M-e va à la prochaine parenthèse se trouvant en première colonne
SLIME inspector:
C-c I lance SLIME inspector. Entrer l'expression à inspecter (ex: (fac 5)), et valider. se déplacer sur l'objet à détailler et valider. l pour revenir en arrière. q pour quitter l'inspecteur.
Exemples de déboggage:
(trace fac) puis taper (fac 5) (fac doit être une fonction définie)
(untrace fac) pour arrêter de tracer la fonction fac
(untrace) pour arrêter de tracer toute fonction
La prochaine fois nous parlerons des fonctions Common Lisp.
, demande de commande:
quit-Enter quitte Slime et ses tampons
(load "~/chemin/nom-de-fichier.extension") charge et compile le fichier.
(load (compile-file "~/chemin/nom-de-fichier.extension")) compile d'abord le fichier, puis charge le résultat de la compilation.
C-M-a va à la précédente parenthèse se trouvant en première colonne
C-M-e va à la prochaine parenthèse se trouvant en première colonne
SLIME inspector:
C-c I lance SLIME inspector. Entrer l'expression à inspecter (ex: (fac 5)), et valider. se déplacer sur l'objet à détailler et valider. l pour revenir en arrière. q pour quitter l'inspecteur.
Exemples de déboggage:
(trace fac) puis taper (fac 5) (fac doit être une fonction définie)
(untrace fac) pour arrêter de tracer la fonction fac
(untrace) pour arrêter de tracer toute fonction
La prochaine fois nous parlerons des fonctions Common Lisp.