Seit einer Weile habe ich dieses anhaltende Problem auf allen meinen Terminals, angefangen bei Gnome-Standard und Tilda, die ich beide verwende, bis hin zu denen, die ich gerade kurz gewirbelt habe, wobei meine Eingabe den Anfang einer eigenen Zeile überschreibt, wenn es sein sollte Zeilenumbruch und nur in der nächsten Zeile.
Wenn Sie Strg-A drücken, um zum Zeilenanfang zurückzukehren, werde ich stattdessen irgendwo in der Zeile vor meiner ersten Eingabezeile zurückgebracht, von der aus jede weitere Eingabe nur sehr seltsam wird.
Da dies eine wirklich schlechte Erklärung ist und schwer zu visualisieren ist, sieht es folgendermaßen aus:
Weiß jemand was das ist? Dies geschieht nicht nur unter bestimmten Umständen, es ist eine permanente Sache, die von Anfang bis Ende jeder Sitzung in jedem Terminalemulator vorhanden ist.
Ausgabe von printf "%s\n" "$PS1" "$COLUMNS"
:
leod:~$ printf "%s\n" "$PS1" "$COLUMNS"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
80
Ausgabe von stty -a
:
leod:~$ stty -a
speed 38400 baud; rows 11; columns 140; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
quelle
printf "%s\n" "$PS1" "$COLUMNS"
Sie bitte die Ausgabe von .test
das Terminal in einem instabilen Zustand verlässt. Wenn es ein Skript ist, können Sie das in Ihre Frage aufnehmen? Was passiert, wenn Sie ohne vorherige Ausführung mit dem Schreiben beginnentest
und der Text normal umgebrochen wird?stty -a
bitte auch die Ausgabe von sehen?type -a test
stattdessen.printf "%q\n" "$PS1"
? Es kann rohe Escape-Sequenzen in PS1 geben, die%s
intakt bleiben (was z. B. die Farbe hin und her ändern kann, was in der Ausgabe unbemerkt bleibt).%q
zitiert jedes nicht druckbare Zeichen in lesbarer Form.Antworten:
Möglicherweise erkennt Ihr Terminal die Fenstergröße nicht richtig. Ich habe in U & L Stackexchange eine verwandte Frage gefunden , und jemand hat die folgende Methode vorgeschlagen, um zu überprüfen, ob dies der Fall ist:
Art
Wenn die Ausgabe nicht ist:
Sie können verwenden
aktivieren. So deaktivieren Sie:
shopt -u checkwinsize
quelle
checkwinsize
war schonon
. Früher habe ichshopt -u checkwinsize
es ausgeschaltet und mein Terminal hat den Text immer noch richtig verpackt. Ich bin nicht sicher, ob diese Antwort das OP-Problem wirklich löst.