Readline in NodeJS zeichnet unerwünschte Linien

9

Ich habe das folgende Problem, wo ich ein ASCII-Zeichen im Terminal-Fenster zeichne und den Cursor an eine andere Stelle bewege und den Vorgang mit dem folgenden Code wiederhole.

%Vor%

Alles läuft gut, bis ich einen Punkt erreiche, an dem auf dem Bildschirm eine volle Zeile erscheint, die ich nicht gezeichnet habe, wie das Bild unten zeigt

Wenn ich die App am Laufen halte, füllt sich der gesamte Bildschirm mit Zeilen, die zeigen, was ich zeichne.

Fragen

Ich glaube nicht, dass ich diese Zeilen zeichne, wenn das wahr ist, was mit dem Terminalfenster passiert?

Tech Sec

  • macOS
  • Terminal und iTerm haben das gleiche Problem
  • NodeJS v6.40
David Gatti 24.12.2016, 15:30
quelle

1 Antwort

1

Wenn ich mir den Quellcode von readline anschaue, glaube ich einen alten Hack sie hinzugefügt, um einige Registerkarte Verhalten zu korrigieren, verursacht immer noch Probleme für diese aktuelle Zeile . Immer wenn die Cursorpositions-Spalten bei 0 erkannt werden (wahrscheinlich ein anderer Fehler in der Quelle), wird eine refreshLine --- ausgegeben, die eine Eingabeaufforderung auslöst. Die Dokumentation sagt, dass "die rl.write () Methode die Daten so in die Eingabe von readline Interface schreiben wird, als ob sie es wäre wurden vom Benutzer zur Verfügung gestellt. ", so gibt die Eingabeaufforderung Ihre gesamte Eingabe an Sie zurück.

Ich konnte keine Problemumgehung in der Quelle finden, aber Sie können den Quellcode der Schnittstelle ändern. Fügen Sie dieses Snippet nach Ihrem const readline = require('readline'); hinzu, um das Problem zu beheben.

%Vor%     
Jack Wade 05.01.2017, 21:21
quelle

Tags und Links