23 Stimmen

Wie kann man Schema mit Emacs ausführen?

Ich habe diese Lehrgang und installierte erfolgreich Emacs, STk, Quack.

Die Frage ist, wie kann ich mein Programm wie in Racket laden?

In Racket kann ich meinen Code im oberen Fenster bearbeiten, einige Codes eingeben, speichern und ausführen. Dann wird das untere Fenster automatisch den Code laden, den ich gerade geschrieben habe. Dann kann ich mit ihm spielen.

Ich habe M-x run-scheme ausprobiert. Es bringt mich nur zum Typ mit-scheme. Dann sagt es No such file or directory exists. Dann habe ich es mit F5 versucht (der Autor der Website hat eine .emacs-Datei geschrieben, die es mir ermöglicht, F5 zu drücken). Dann öffnet sich das STk. Ich kann meine Schemadatei in STk laden. Aber es bringt mich zurück zu MIT Scheme mit edwin.

Ich möchte dasselbe in Racket haben (Write/REPL). Aber mehr Flexibilität bei der Tastenbewegung. In Racket hat man nicht C-f C-n C-a...etc.

Kann mir jemand zeigen, wie man das macht?

31voto

michiakig Punkte 8082

Ich habe buchstäblich nur dies auf meinem Macbook einrichten. Da Sie nicht angegeben haben, auf welchem System Sie arbeiten, hoffe ich, dass Sie eine Unix-Variante verwenden... Ich kenne mich mit STk nicht wirklich aus, aber das könnte Ihnen helfen, die Probleme zu lösen, die Sie haben und die sich sehr ähnlich anhören wie die Probleme, die ich hatte.

Wenn Sie eine Scheme-Implementierung installieren (ich verwende MIT Scheme, editiert, um hinzuzufügen, dass dies auch mit Racket funktioniert, indem ich mzscheme verwende), kann es sein, dass ein Symlink mit dem Namen "scheme" mitgeliefert wird - das ist es, wonach Emacs sucht, denke ich.

Wenn das nicht der Fall ist (MIT Scheme scheint das unter OS X nicht zu sein), können Sie Ihre Emacs-Konfiguration bearbeiten, indem Sie in Emacs M-x customize-group dann tippen Sie scheme . Scrollen Sie ein wenig nach unten und finden Sie die Scheme program name Feld. Ändern Sie es in Ihren Scheme-Implementierungsbefehl, etwa mit-scheme o mzscheme . Sie können auch einfach einen Symlink in Ihrem PATH erstellen, der auf die richtige Binärdatei verweist:

sudo ln -s /Applications/mit-scheme.app/Contents/Resources/mit-scheme
    /usr/local/bin/scheme

Für MIT Scheme müssen Sie auch die Variable MITSCHEME-LIBRARY-PATH setzen, also fügen Sie diese zu Ihrem .emacs .

(setenv "MITSCHEME_LIBRARY_PATH"
    "/Applications/mit-scheme.app/Contents/Resources")

Dann sollten Sie in der Lage sein, einen minderwertigen Scheme-Puffer zu starten mit M-x run-scheme . Und übergeben Sie Code an die REPL mit C-x C-e , die den Ausdruck vor dem Punkt auswertet.

Wenn dies nicht funktioniert (bei mir war es nicht der Fall), müssen Sie möglicherweise sicherstellen, dass der Pfad, den Emacs für die Ausführung von Shell-Befehlen verwendet, die Option scheme Symlink oder das Verzeichnis, das die Binärdatei für Ihre Implementierung enthält. Mit einigen Experimenten habe ich dies behoben, indem ich dies zu meiner .emacs Datei:

Emacs ignoriert meinen Pfad, wenn er einen Kompilierbefehl ausführt

Zu den Referenzen: die andere SO-Frage, die ich für die Erstellung dieses Dokuments verwendet habe:

Wie bekomme ich einen Schema-Interpreter in Emacs zum Laufen?

3voto

ine Punkte 13823

Der 64-Bit-Download von GNU hat die .app jetzt als "MIT:GNU Scheme.app" benannt. Ich habe @spacemanakis Anweisungen ausprobiert, aber ich bekam immer wieder:

bash-3.2$ export MITSCHEME_LIBRARY_PATH=/Applications/MIT:GNU\ Scheme.app/Contents/Resources
bash-3.2$ scheme
    scheme: can't find a readable default for option --band.
    searched for file all.com in these directories:
    /Applications/MIT
    /Applications/MIT:GNU Scheme.app/Contents/Resources/GNU Scheme.app/Contents/Resources

Schließlich wurde mir klar, dass das Semikolon als Pfadtrenner fungierte. Stellen Sie also sicher, dass Sie es umbenennen:

mv MIT:GNU\ Scheme.app/ mit-scheme.app

Dann wird die obige Anleitung funktionieren - obwohl Sie vielleicht den Finder benutzen müssen, um die Umbenennung vorzunehmen, denn als ich es auf der Shell gemacht habe, ist mein Ressourcenordner verschwunden.

3voto

yuchen Punkte 410

Ich würde empfehlen, Folgendes zu verwenden Homebrew um das mit-scheme mit einem einfachen Befehl zu installieren brew install mit-scheme wenn Sie mit einem Mac arbeiten. Finden Sie Ihr ~/.emacs file Wenn sie nicht vorhanden ist, erstellen Sie sie und hängen Sie sie an das Ende der Datei an:

(setq scheme-program-name  "your/mit-scheme/path")

Utilice which mit-scheme Befehl, um herauszufinden, wo Ihr mit-scheme installiert wurde. Nehmen Sie mein MacOS X als Beispiel:

(seq scheme-program-name   "/usr/local/bin/mit-scheme")

Speichern Sie es und beenden Sie es. Starten Sie dann Ihren Emacs neu und geben Sie M+x und Sie sind in der Mit-Sheme.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X