Wenn ich zum Beispiel tail -f
eine Datei oder eine read
Benutzereingabe mache , <Enter>
wird ^M
im Terminal produziert, anstatt das zu beenden read
oder eine neue Zeile zu stdout hinzuzufügen. ^J
funktioniert gut.
Ich bin ssh
im Ubuntu-System, wenn das wichtig ist. Das passiert mir sowohl in zsh als auch in bash. Eine Lösung, mit der ich gespielt habe, besteht darin, das ^M
to ^J
in zsh neu zuzuordnen, aber das scheint das Root-Problem nicht zu beheben. Weiß jemand, was dies verursachen könnte?
Bearbeiten: Um einige Fragen zu beantworten, bin ich ssh
in Ubuntu von OSX. Ich benutze iTerm und zsh. Ich habe auch vergessen zu erwähnen, dass ich tmux auf dem Ubuntu-Rechner verwende.
Bearbeiten 2: Verpasste eine Frage. Wenn ich tippe Ctrl-V Enter
bekomme ich ^M
(sowohl unter OSX als auch unter Ubuntu).
Edit 3: Unter OSX und Ubuntu echo $TERM
produziert screen-256color
.
quelle
Antworten:
Falls jemand anderes dieses Problem hat, ist es höchstwahrscheinlich eher ein Problem mit der Einstellung der stty-Terminalleitung als ein TERM-Problem. Wenn Ihnen dies erneut passiert, versuchen Sie es mit dem Ausführen
stty sane
und lassen Sie uns wissen, ob dies das Problem behebt.quelle
Versuchen Sie auszuführen
stty -a
, um Ihre Terminaleinstellungen anzuzeigen. Mein Verdacht ist, dass Ihreicrnl
Einstellung nicht festgelegt ist und als angezeigt wird-icrnl
(das Minuszeichen bedeutet, dass sie deaktiviert ist), anstatt die gewohnte Einstellung zu haben, eingeschaltet zu sein. So wird mein Terminal normalerweise eingerichtet, wenn ich mich anmelde:Und ich habe kein Problem mit Zeilenenden: entweder return (^ M) oder enter (^ J) beendet Eingabezeilen. Aber wenn ich mich
icrnl
ausschalte, tauchen jedes Mal, wenn ich mit einem Programm spreche, plötzlich ^ M-Codes auf und drücken die Eingabetaste:Der Code
icrnl
bedeutet "Wagenrücklauf in Zeilenumbrüche umwandeln" und verbirgt sich vor dem laufenden Programm, das Sie möglicherweise eingeben, wenn Unix wirklich ^ J will. Früher hatten alte Tastaturen eine separate Return- und Enter-Taste (wobei Return Sie normalerweise über ein Formular weitergeleitet und von Enter übermittelt hat), heute haben wir jedoch im Allgemeinen nur eine Zeilenende-Taste. Diese Terminal-Einstellung hilft also, die beiden Bedeutungen zu kombinieren.Fügen Sie den
stty icrnl
Befehl zu Ihrem.profile
oder hinzu,.bashrc
wenn Sie feststellen, dass dies tatsächlich die Problemeinstellung ist.quelle