2011-03-21 31 views
5

Recientemente he comenzado a aprender lisp, y tengo principalmente bin utilizando clisp y vim. También quería probar sbcl, ya que a menudo se recomienda como uno de los mejores compiladores de lisp gratuitos. Sin embargo, hay una cosa que hace que sbcl sea más difícil de usar para mí: no puedo obtener autocompletar en el REPL, que sí tengo en clisé. Es decir, cuando comienzo sbcl y escriba lo siguiente (como ejemplo),Habilitación de autocompletar en sbcl

* (requi<tab> 

donde <tab> es el carácter de tabulación literal, no consigo una lista de terminaciones, sino más bien un carácter de tabulación detallado. En clisp, <tab> completará la línea anterior al * (require.

Como soy bastante nuevo en lisp, la funcionalidad de autocompletar en clisp es realmente útil, por lo que sería muy conveniente si alguien pudiera explicar cómo obtenerla en sbcl también.

Respuesta

6

Una forma de obtener una réplica de autocompletado en SBCL es usar linedit, de http://common-lisp.net/project/linedit/. Un segundo es usar rlwrap, un contenedor de readline, con un archivo de finalización adecuado. (Creo que es justo decir que ninguno de estos es tan comúnmente utilizado como emacs, que por supuesto también proporciona un REPL completo con una serie de otras funciones útiles.)

+0

Gracias! ¡linedit parece funcionar muy bien! –

+0

rlwrap funciona para mí –

4

No conozco la manera de obtener un REPL autocompletado en SBCL, pero creo que la interfaz con mi entorno de lisp desde SLIME es bastante útil y en ese punto, puede usar Cc Ci para auto- terminación.

+1

No encuentro nada en el manual de SBCL al respecto, por lo que supongo que no hay compatibilidad de finalización incorporada. Solo puedo secundar la recomendación de usar SLIME, incluso tiene varios sistemas de finalización para elegir. Especialmente la finalización difusa es genial. Y también puede completar con '' en SLIME REPL. (Al menos funciona para mí, y no tuve que configurar nada para lograrlo.) EDITAR: Acabo de ver que C-c C-i ahora es el enlace correcto de la clave de finalización en los búferes SLIME que no son repl. Eso es nuevo para mí, solía ser M-C-i. –

+0

Bueno, el problema es que uso vim, no emacs. He intentado cambiar, pero hay demasiado trabajo para configurar emacs con el modo vipermode (o similar) y sintonizarlo a mi gusto para que funcione. Por lo tanto, al menos por ahora, baba no es una opción. Utilizo un complemento inspirado en limo para vim, pero no es tan poderoso. De todos modos, esta es la razón por la cual estoy interesado en completar el REPL estándar de SBCL. De todos modos, gracias por la respuesta. Me hace un poco más inspirado para hacer una nueva prueba en emacs. –

0

Si desea usar sbcl, emacs y limo, siga este Modern Common Lisp on Linux tutorial. El tutorial menciona la instalación de quicklisp y especialmente (ql:quickload "quicklisp-slime-helper"), una elispscript que hace que la baba haga autocompletar y más.

Cuestiones relacionadas