2017-02-06 5 views
0

je le code suivant dans un tampon (fichier ~/de firsts.lsp):Comment est-ce que je peux lancer un tampon lisp dans slime et voir sa sortie dans emacs?

(defun firsts (l) 
    (cond 
    ((null l)()) 
    (T (cons (car (car l)) (firsts (cdr l)))))) 

(firsts '((A B) (C D) (E F))) 

Je voudrais « exécuter » ce script et la sortie suivante (ou une variante raisonnable de celui-ci):

(A C E) 

Mon tampon montre ce mode:

(Lisp [COMMON-LISP-USER cmucl] adoc) 

En essayant de l'exécuter, j'ai essayé Cc Ck, qui a créé un tampon boue compilation qui a montré que le fichier a été "compilé" sans erreurs, mais je ne vois pas comment obtenir le code compilé pour exécuter ou exécuter le script entier à travers l'interpréteur.

Slime est installé et en cours d'exécution (c'est ce qui coordonne la compilation). Je sais que je peux exécuter les formulaires à travers le rempl, sous une forme par forme, mais je voudrais exécuter l'ensemble du script de manière interactive.

Environnement logiciel: Mac OS X 10.12.3 GNU Emacs 25.1.1 Slime ChangeLog date 19/04/2016 CMU 21b Common Lisp (21B Unicode), mais même résultat avec SBCL 1.3.14

+0

https://common-lisp.net/project/slime/doc/html/SLIME-mode.html#SLIME-mode –

+0

@jenesaisquoi C-c C-b est lié à slime-interruption. Le manuel slime ne mentionne pas slime-eval-buffer (bien que la commande fonctionne en utilisant M-x slime-eval-buffer, il ne semble pas y avoir de liaison de clé). – decuser

+0

@RainerJoswig le lien est à la documentation slime, mais n'inclut pas le slime-eval-buffer apparemment correct, aucune des commandes dans le doc n'est ce que je demandais à propos de. Le plus proche étant slime-eval-région mais ce n'est pas idéal. – decuser

Répondre

3

On peut imaginer de diverses manières comment un éditeur de source Lisp et un Listener (une boucle d'écriture-eval-print) travaillent ensemble. Bien que SLIME soit généralement assez bon, une partie de l'interaction est légèrement maladroite.

Dans ce cas là, j'utilise trois façons d'évaluer un tampon avec BOUE/Emacs:

  • sélectionnez la région, puis d'évaluer la région en utilisant BOUE
  • BOUE tampon eval
  • sauver tampon, charge buffer ou compiler-et-charger le tampon en utilisant SLIME

Notez que si vous évaluez des choses, les résultats sont imprimés dans le mini-tampon.

Vous souhaitez également imprimer quelque chose, afin que vous puissiez voir ce qui se passe.

La compilation de choses avant le chargement/l'exécution peut aider à trouver des erreurs. J'utilise souvent ça.

La liste réelle des raccourcis clavier pour un tampon est vue sur control-h m.

notes secondaires sur l'interaction lors de l'évaluation d'un tampon

Un autre style d'interaction serait de nourrir chaque expression à un tampon auditeur/rempl, les résultats ont l'impression là-bas, jusqu'à ce qu'une erreur se produit ou il n'y a pas plus d'expressions . Mais je ne pense pas que SLIME soutienne cela de manière directe. L'EDI LispWorks vous permet d'évaluer un tampon et la sortie (y compris les résultats d'évaluation) est affichée dans un volet de sortie correspondant. L'IDE Clozure CL vous permet d'évaluer un tampon et les expressions sont évaluées dans le plus haut écouteur. Imprimé est la sortie et le dernier résultat.