为什么需要从 SLIME 更改当前目录?我认为这不是因为您想从当前正在编写的系统中访问 Lisp 源文件,而是因为您想编写代码来读取或写入包含数据的文件。
如果是这样,最好local-projects
在Quicklisp中尝试。与 一起quickproject
,它允许您轻松创建系统,然后您可以使用(ql:quickload 'my-system)
或什至加载这些系统(require 'my-system)
。
如果您需要引用相对于系统根目录的数据文件my-system
(仅使用最后一段中的名称以保持示例一致),您可以使用asdf:system-relative-pathname
. 例如,(asdf:system-relative-pathname 'my-system "files/data.txt")
.
当然,部署是完全不同的业务。我的解决方案是查看如何调用正在运行的可执行文件来确定代码是已部署还是正在开发中。如果在开发中,我使用asdf:system-relative-pathname
. 如果部署,我会根据可执行文件的路径确定文件的路径(我的“构建脚本”在构建项目时将这些文件复制到可执行文件旁边)。
自从我开始使用这种方法以来,我对cd
SBCL 中的 -ing 的需求下降到零。cd
- 到处走走并不难,但担心的事情少一点是件好事。