2012-04-07 12 views
3

Ich lerne Standard ML mit seinem Interpreter. Manchmal mache ich einen Tippfehler und möchte nur den vorherigen Befehl wie in der Linux-Shell wiederholen. Der Pfeil nach oben führt jedoch zum Drucken von Sonderzeichen auf dem Bildschirm. Manchmal möchte ich nach links gehen, um etwas zu korrigieren, der linke Pfeil führt auch zum Drucken von Sonderzeichen.Standard ML wiederhole letzten Befehl, Pfeil nach links?

Weiß jemand, was ist der richtige Weg, sie zu tun?

+0

Sieht aus wie ein Duplikat - http://stackoverflow.com/questions/1911861/how-to-fix-the-sml-nj-interactive-system-to-use- Pfeiltasten – Gangadhar

+0

Hervorragend! Wie kommt es, dass ich das bei Google nicht gefunden habe ... Danke, dass du darauf hingewiesen hast, das ist großartig! –

Antwort

7

verwende ich Moskau ML, aber ich glaube die Antwort auf gelten je nachdem, welche Version Sie verwenden:

Sie erreichen, was Sie durch die Verwendung rlwrap wollen.

Ich habe folgende alias gesetzt in meinem .zshrc, die Griffe automatisch:

alias mosml="rlwrap mosml" 

(. Substitute mosml für den Namen Ihres SML-Interpreter)

0

Wenn Sie irgendwelche gehen zu tun ernsthaftes SML-Hacken Ich empfehle Ihnen dringend, eine Entwicklungsumgebung zu verwenden, die es Ihnen ermöglicht, mit der SML-Top-Level-Umgebung zu interagieren.

Ich benutze Emacs mit der . Das Schöne daran ist, dass Sie im oberen Fenster Funktionen kodieren und in einer Datei speichern können. Sie können sie dann an das untere Fenster senden, das den Inferior-SML-Prozess zum Kompilieren enthält. Auch der Inferior-SML-Prozess hat standardmäßig eine Befehlsgeschichte.

2

Verwenden Sie das Programm ledit. Sie können mit den Pfeiltasten frühere Befehle aufrufen.

Beispiel:

ledit mosml 
+0

das ist schön und funktioniert auch für smlnj und andere - danke! –