Wenn ich zum Beispiel folgenden Befehl eingebe,
echo line | (cat >/dev/null; vi)
sogar in eine andere Schale gewickelt,
sh -c 'echo line | (cat >/dev/null; vi)'
und von Vim zurückgekehrt, jetzt wird kein Wagenrücklauf mehr angezeigt.
Wie kann ich die neuen Zeilen wieder anzeigen lassen? (Ohne Ausgang.)
command-line
tty
Xiè Jìléi
quelle
quelle
Antworten:
Probieren Sie eine oder beide der folgenden Methoden aus:
ctrl+c
, dann geben Sie einreset
und drücken Sie dannenter
.ctrl+c
, dann geben Sie einstty sane
und drücken Sie dannenter
.das
ctrl+c
ist keine anderen Zeichen löschen Sie in der Befehlszeile eingegeben haben könnte.reset
oderstty sane
behebt normalerweise ein fehlerhaftes Terminal. Lesen Sie die Manpage vonreset
undstty
für weitere Informationen.Beachten Sie, dass , wenn das Terminal bis genug ist, dann verwirrt ist es , dass nicht einmal sein könnte
ctrl+c
oderenter
wird erwartet funktionieren. Es gibt noch andere Methoden, um Zeichen einzugeben, aber sie beinhalten uralte dunkle Magie. In diesem Fall ist es normalerweise einfacher, das Terminal zu schließen und ein anderes zu starten.Mein Verständnis der inneren Funktionsweise eines Terminals ist nicht tief genug, um zu erklären, warum oder wie es das tut.
quelle
Es ist nicht die beabsichtigte Verwendung
vi
, um Eingaben von stdin zu erhalten.Auf jeden Fall kann man mit wieder Newlines bekommen
ohne das Terminal zurückzusetzen.
quelle