Dlaczego należy zmienić katalog bieżący z SLIME? Zakładam, że to nie dlatego, że chcesz odwiedzić plik źródłowy Lisp z systemu, który właśnie piszesz, ale dlatego, że chcesz napisać kod, który odczytuje lub zapisuje plik zawierający dane.
Jeśli tak, to prawdopodobnie lepiej wypróbować local-projects
w Quicklisp. Razem z quickproject
pozwala na łatwe tworzenie systemów, które można następnie załadować za pomocą (ql:quickload 'my-system)
lub nawet (require 'my-system)
.
Jeśli potrzebujesz odwołać się do pliku danych znajdującego się w katalogu głównym systemu my-system
(używając tylko nazwy z ostatniego akapitu, aby zachować spójność przykładów), możesz użyć asdf:system-relative-pathname
. Na przykład: (asdf:system-relative-pathname 'my-system "files/data.txt")
.
Oczywiście, wdrożenie to zupełnie inna sprawa. Moim rozwiązaniem jest sprawdzenie, czy kod jest wdrożony lub w fazie rozwoju. Jeśli w fazie rozwoju używam asdf:system-relative-pathname
. Po wdrożeniu ustalam ścieżkę plików na podstawie ścieżki do pliku wykonywalnego (mój "skrypt budowy" kopiuje te pliki obok plików wykonywalnych podczas budowania projektu).
Odkąd zacząłem używać tego podejścia, moje zapotrzebowanie na cd
-ing w SBCL spadło do zera. cd
- nie było trudno, ale miło jest mieć mniej powodów do zmartwienia.
slime-cd jest interaktywną skompilowaną funkcją Lisp w 'slime.el '. (KATALOG ŚLUZ-cd) Uczyń, że KATALOG staje się bieżącym katalogiem Lisp. Zwróć cokolwiek swank: set-default-directory zwraca. –
To było pomocne. Jednak link do "skrótu cd" jest martwy. Co miałeś na myśli? – MadPhysicist