Bueno, a lo mío:
Me propuse como meta aprender lisp ahora en vacaciones, al menos lisp. Buscando, encontré que hay más de un compilador/intérprete, pero me decanté por SBCL ¿Por qué? Pues: 1.- CLISP no se actualiza hace años (2010), y tiene muchos errores que ya parece abandonado, además tuve una mala experiencia. 2.- SBCL es sucesor de CMUCL, así que sería bobo instalar el segundo. 3.- SBCL es más rápido.
Quizás me pase a otro después, pero por ahora estoy en ese.
Aún estoy recién aprendiendo lo básico, y sé bastante poco.
Como estoy aprendiendo, uso bastante la consola interactiva, sin embargo la de sbcl tiene un problema: No se puede retroceder (teclas de movimiento), sólo escribir y borrar. Lo cual es bastante molesto.
Buscando una solución me encontré con slime, sin embargo muchos tutoriales para instalarlo en emacs simplemente no me funcionaron, eso hasta que encontré este. Lo robaré para explicar en español lo mismo, ya que me funcionó y así lo encuentran más fácil en google xD
El link original está en:
http://stackoverflow.com/questions/12607716/setting-the-slime-in-emacs
Como yo uso Linux mint, que es sucesor de Ubutu, que es sucesor de Debian, para instalarlo se usa en una consola (o en el centro de software que odio):
$ sudo apt-get install sbcl
Si usan Fedora o RedHat, en vez de "apt-get" usan "yum", si usan otra distro supongo que sabrán instalar paquetes, o buscan en google.
Luego instalan el emacs, yo uso el emacs24, simplemente porque el xemacs hace dolor en los ojos y el emacs23 suena más antiguo (no lo he probado). para instalarlo usan:
$ sudo apt-get install emacs24
Luego de eso instalan el quicklisp, que es con el cual instalarán slime (copio).
$ sudo apt-get install wget
$ cd ~/Downloads
$ wget http://beta.quicklisp.org/quicklisp.lisp
$ sbcl --load ./quicklisp.lisp
Tip para novatos: Recordar que el signo de peso significa que se pone en la terminal, como usuario normal. El asterisco de abajo significa que ya están en la consola interactiva de sbcl.
* (quicklisp-quickstart:install)
* (ql:add-to-init-file)
* (ql:quickload "quicklisp-slime-helper")
* (quit)
Luego de eso en su carpeta personal (/home/<usuario>) crean el archivo ".emacs". Recuerden activar ver los archivos ocultos en su navegador de archivos. Si tienen dudas pueden hacerlo desde línea de comandos con el comando:
$ nano ~/.emacs
para usar nano, que es un editor en consola fácil de usar y tiene ayudita abajo (recordar que el ^ es Ctrl, es decir que si dice "^x" apretan Ctrl+x).
Si le tienen miedito a la consola pueden usar gedit (si lo tienen instalado), para ello:
$ gedit ~/.emacs
Luego en el archivo copian y pegan lo siguiente:
(setq inferior-lisp-program "sbcl --noinform")
(load (expand-file-name "~/quicklisp/slime-helper.el"))
En el link aparecen las líneas al revés, pero el orden aparentemente no importa.
El "--noinform" es para que no les salga el mensaje de bienvenida de sbcl.
Luego de todo eso abran el emacs, y apreten M x, escriben "slime" y apretan intro.
Ahora quedarán pasmados con lo anterior, porque apretarán "M x" y no les saldrá nada xD Pues me costó encontrar, y quizás ustedes sabían, pero el "M" es de "Meta" así que apretan Alt+x, escriben abajito "slime" (sin comillas), y apretan intro. (si leen en algún manual que apreten C x es Ctrl+x)
Les saldrá la consola interactiva, pero abajo (si usan el emacs24 como yo), así que apretan el click derecho en la barra de abajito de la subventana, donde dice:
U:%%- *GNU Emacs* Top L5 (Fundamental)
Quizás les salga algo distinto, pero similar. con el click izquierdo la borran.
Luego para cambiar de tipo de subventana clickan el izquierdo en el nombre para avanzar y el derecho para retroceder. El nombre es lo que está en negritas entre los asteriscos (en el caso de slime, será algo como *slime-repl sbcl*).
Ahora viene lo otro... tienen la consola interactiva y todo, pero qué pasa si quieren guardar el código y luego compilarlo... pues será una auténtica odisea.
Lo primero que tienen que hacer es guardar el buffer, así que van al menú "File" y luego a "Save as" (para guardar el buffer), y seleccionan ruta y nombre.
El problema es que el buffer no es compilable. Para arreglar eso, hice un pequeño script en python que hace la magia de volver el buffer compilable (comenta los resultados, borra el prompt "CL-USER>", y elimina las líneas con error de compilación (deja los warnings)). Ese script lo subí a github, y lo pueden encontrás acá:
No hay comentarios:
Publicar un comentario