2012-07-03 1 views
3

Il est une fonction système très facilemit-scheme vim slimv: "lecture erreur: aucune fonction de répartition définie pour # F"

(define member? 
    (lambda (a lat) 
    (cond 
     ((null? lat) #f) 
     (else (or (eq? (car lat) a) 
       (member? a (cdr lat)) 
       )) 
    ) 
    ) 
) 

Cependant, quand je pressais , d ou , F dans vim pour exécuter cette fonction, il y a une erreur

/home/oo/tmp/t.scm:64 read-error: no dispatch function defined for #\F

Line: 4, Column: 21, File-Position: 64

Stream: #<SB-SYS:FD-STREAM for "file /home/oo/tmp/t.scm" {AC84DA9}>

enter image description here

+2

Vous ne pouvez pas exécuter le code de schéma avec une implémentation Common Lisp. Ici, il semble que vous essayez de l'exécuter sur SBCL. –

+0

@ ChrisJester-Young, merci. J'ai lu [cet article] (http://kovisoft.bitbucket.org/tutorial.html) pour configurer mon vimrc, je ne sais pas comment le modifier pour lancer le fichier mit-sheme. J'utilise Ubuntu 12.04 comme mon ordinateur portable. – pvd

Répondre

7

Chris déjà fait remarquer que yo Vous avez essayé d'utiliser le code Scheme avec un serveur Swank Common Lisp. Vous devez exécuter un serveur Scheme Swank (par exemple swank-mit-scheme.scm, également inclus dans Slimv). Normalement, Slimv devrait détecter automatiquement le système MIT sous Linux sans aucune modification dans le .vimrc. Pour que l'autodétection fonctionne correctement, vous devez avoir installé MIT Scheme et la commande scheme.

Je vous suggère de supprimer tous les paramètres liés à Slimv de votre .vimrc. Chargez ensuite le .scm dans Vim et tapez cette commande:

:echo SlimvSwankCommand()

Si le schéma a été détecté automatiquement, cela doit imprimer la commande qui exécute le schéma serveur Swank (recherche swank-mit-scheme.scm dans la sortie). Si l'autodétection a échoué, vous n'avez pas la commande scheme ou Slimv n'a pas trouvé swank-mit-scheme.scm. Dans ce cas, vous devez indiquer à Slimv la commande pour exécuter le serveur Scheme Swank. Vous pouvez faire en ajoutant une commande similaire à votre .vimrc:

let g:slimv_swank_cmd = '! xterm -e scheme --load /your-path-to/slime/contrib/swank-mit-scheme.scm &'

Mais faire que si la détection automatique échoue. Si vous avez besoin de plus d'aide, n'hésitez pas à me contacter, je suis l'auteur de Slimv.

+0

merci beaucoup. la commande dans mon système est: xterm -iconic -e "schéma" --load "/home/oo/.vim/bundle/slimv/slime/contrib/swank-mit-scheme.scm" & – pvd

+0

pourquoi le slimv met toujours les bonnes parenthèses **) * * dans une ligne individuelle? – pvd

+1

Cela s'appelle "retour électrique" et peut être désactivé via 'let g: paredit_electric_return = 0'. La fermeture ')' dans les lignes individuelles sont rassemblées lorsque vous appuyez sur ')' à la fin de la ligne. Les retours électriques rendent l'édition de ligne plus facile car les lignes internes d'un formulaire sont équilibrées, vous pouvez échanger des lignes facilement, vous n'avez pas à vous soucier des parens supplémentaires inégalées. Voir [this] (http://img8.imageshack.us/img8/9479/openparen.gif) pour une démo. –

Questions connexes