Зачем вам нужно изменить текущий каталог с 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 упала до нуля.cd
- вокруг было не сложно, но приятно иметь меньше поводов для беспокойства.