2012-02-23 18 views
7

W przeszłości, używam następujący skrypt, aby rozpocząć SBCL:Jak ustawić bieżący katalog SBCL za pomocą szlamu?

breakchars="(){}[],^%$#@\"\";:''|\\" 
cd /media/E/work 

exec rlwrap --remember -c -b "$breakchars" -f "$HOME"/.sbcl_completions sbcl --noinform --userinit "$HOME"/.sbclrc "[email protected]" 

Teraz przy użyciu śluzu w emacs, doonot wiem jak ustawić bieżący katalog SBCL za?

Każda sugestia jest doceniana!

Odpowiedz

5

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.

8

SLIME uruchamia system Lisp z bieżącym katalogiem pobranym z katalogu, w którym znajduje się plik powiązany z bieżącym buforem. Zazwyczaj otwierasz plik, w którym chcesz, aby SLIME było uruchamiane jako pierwsze.

Jeśli chcesz zmienić bieżący katalog na działający Lisp, najlepszym sposobem jest użycie ,cd shortcut. Zakłada to, że masz odpowiednią konfigurację replikacji szlamu, ponieważ obecne instalacje Szlamu są domyślnie bardzo minimalne. Zobacz contributed packages, prawdopodobnie potrzebujesz co najmniej slime-fancy metapackage.

+1

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. –

+0

To było pomocne. Jednak link do "skrótu cd" jest martwy. Co miałeś na myśli? – MadPhysicist

Powiązane problemy