2016-04-15 17 views
16

Bei der Eingabe von () in IEx 1.2.4 würde der Cursor für 1s auf die entsprechende runde Klammer "springen" und zurückgehen. Auch wenn es nicht wirklich springt, aber es ist irgendwie nervig für das Auge. Gibt es eine Möglichkeit, diese Funktion in IEx zu deaktivieren?Deaktivieren des springenden Cursors in der Erlang-Shell

EDIT:

Während die Frage ursprünglich betroffene IEx, die aktuelle Ausgabe (wie von @tkowal in seinem Kommentar weiter unten angegeben) ist eigentlich in dem Erlang-Shell, die IEx oben läuft von. Daher habe ich das erlang-shell-Tag zu dieser Frage hinzugefügt.

+3

Kein Glück. Dies ist eine Funktion der zugrunde liegenden Erlang-Shell und ist nicht konfigurierbar. Ich dachte, dass 'iex --erl --oldshell' funktionieren könnte, weil es nicht die Funktion hat, aber iex startet in diesem Modus überhaupt nicht. Es erfordert moderne Shell. – tkowal

+0

Sie können die Formulierung Ihrer Frage ändern und sie erneut speichern. Es mag sein, dass die Erlang-Leute einige Ideen haben. –

+0

Ich habe den Titel geändert, um anzuzeigen, dass dies ein Erlang-Shell-Problem ist. – Zepplock

Antwort

6

Der Cursor springt in lib/stdlib/src/edlin.erl (in Erlangs stdlib). Genauer gesagt scheint es in den Zeilen 205 bis 213 zu geschehen, wo ), und } scheinbar erfasst und in Anweisungen umgewandelt werden, um den Cursor zu bewegen (die dann durch verschiedene Prozesse in erls Überwachungsbaum gesendet werden bis zu user_drv, die dann die notwendigen Befehle an den Port tty_sl sendet, um die Cursorbewegungen zu veranlassen).

Leider gibt es keine Möglichkeit (AFAICT), diese Funktionalität zu deaktivieren, die das Patchen des Codes an dieser Stelle nicht beinhaltet (entweder durch Auskommentieren dieser Zeilen oder durch Hinzufügen zusätzlicher Wächter, um nach einer neuen Option zu suchen, die an erl übergeben wird). Wenn Sie diese Datei patchen und Erlang neu kompilieren möchten, dann gehen Sie darauf. Sonst ist es zumindest ein Startpunkt für jemanden, der versucht, eine Konfigurationsoption für dieses Verhalten zu implementieren.

+0

Danke, es funktioniert. Ich lasse das hier als Referenz, weil ich es googeln musste: http://erlang.org/pipermail/erlang-questions/2001-July/003416.html – skamsie