¿Por qué necesita cambiar el directorio actual de SLIME? Supongo que no es porque quiera visitar un archivo fuente Lisp del sistema que está escribiendo actualmente, sino porque quiere escribir código que lea o escriba un archivo que contenga datos.
Si es así, probablemente sea mejor intentar local-projects
en Quicklisp. Junto con quickproject
, le permite crear fácilmente sistemas, que luego puede cargar utilizando (ql:quickload 'my-system)
o incluso (require 'my-system)
.
Si necesita hacer referencia a un archivo de datos ubicado en relación con la raíz del sistema my-system
(simplemente usando el nombre del último párrafo para mantener los ejemplos consistentes), puede usar asdf:system-relative-pathname
. Por ejemplo, (asdf:system-relative-pathname 'my-system "files/data.txt")
.
Claro, la implementación es un negocio completamente diferente. Mi solución es mirar how the running executable was called para determinar si el código está implementado o en desarrollo. Si está en desarrollo, uso asdf:system-relative-pathname
. Si se implementa, determino la ruta de los archivos en función de la ruta del ejecutable (mi 'script de compilación' copia estos archivos al lado de los ejecutables al construir el proyecto).
Desde que comencé a utilizar este enfoque, mi necesidad de cd
-ing en SBCL se redujo a cero. cd
, no era difícil, pero es bueno tener menos cosas de qué preocuparse.
slime-cd es una función Lisp compilada interactiva en 'slime.el '. (DIRECTORIO slime-cd) Haga que DIRECTORIO se convierta en el directorio actual de Lisp. Devuelve lo que sea swank: set-default-directory returns. –
Esto fue útil. Sin embargo, el enlace al "acceso directo de cd" está muerto. ¿Qué tenías en mente? – MadPhysicist