mit-scheme vim slimv: "error de lectura: no se definió una función de despacho para #\F"

Es una función de esquema muy fácil.

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

Sin embargo, cuando presioné ,d or ,F en vim para ejecutar esta función, hay un error

/home/oo/tmp/t.scm:64 error de lectura: no se ha definido una función de despacho para #\F

Línea: 4, Columna: 21, Posición de archivo: 64

Arroyo: #

enter image description here

preguntado el 03 de julio de 12 a las 23:07

No puede ejecutar código Scheme con una implementación de Common Lisp. Aquí, parece que está intentando ejecutarlo en SBCL. -

@ChrisJester-Young, gracias. Yo leo este artículo para configurar mi vimrc, no sé cómo modificarlo para ejecutar el archivo mit-sheme. Uso ubuntu 12.04 como sistema operativo de mi computadora portátil. -

1 Respuestas

Chris ya señaló que intentó usar el código Scheme con un servidor Common Lisp swank. Debe ejecutar un servidor Scheme swank (por ejemplo, swank-mit-scheme.scm, también incluido en Slimv). Normalmente, Slimv debería detectar automáticamente el esquema MIT en Linux sin ningún ajuste en el .vimrc. Para que la autodetección funcione correctamente, necesita MIT Scheme instalado y el scheme el comando esté disponible.

Le sugiero que elimine cualquier configuración relacionada con Slimv de su .vimrc. Luego cargue el .scm en Vim y escriba este comando:

:echo SlimvSwankCommand()

Si Scheme se detectó automáticamente, esto debería imprimir el comando que ejecuta el servidor Scheme swank (busque swank-mit-scheme.scm en la salida). Si la detección automática no tuvo éxito, entonces no tiene la scheme comando o Slimv no encontró swank-mit-scheme.scm. En este caso, debe indicarle a Slimv el comando para ejecutar el servidor Scheme swank. Puede hacerlo agregando un comando similar a su .vimrc:

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

Pero haga esto solo si falla la detección automática. Si necesita más ayuda, no dude en ponerse en contacto conmigo, soy el autor de Slimv.

Respondido 04 Jul 12, 10:07

Muchísimas gracias. el comando en mi sistema es:! xterm -iconic -e "esquema" --load "/home/oo/.vim/bundle/slimv/slime/contrib/swank-mit-scheme.scm" & - pvd

por que los slimv siempre ponen los paréntesis correctos ) en una línea individual? - pvd

Se llama 'retorno eléctrico' y se puede desactivar mediante let g:paredit_electric_return=0. El cierre ) en líneas individuales se juntan cuando presionas ) al final de la línea. Los retornos eléctricos facilitan la edición en línea porque las líneas internas de un formulario están equilibradas, puede intercambiar líneas fácilmente, no tiene que preocuparse por los paréntesis adicionales no coincidentes. Ver este para una demostración. - Tamas Kovacs

aquí hay otra pregunta:stackoverflow.com/questions/14974738/… - pvd

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.