Ich verwende die Standardversionen von Bash und Screen in OS X Lion.
Wenn ich mich in einer Bildschirmsitzung befinde und durch den Bash-Verlauf zurück scrolle, komme ich zu einem Befehl, der lang genug ist, um ihn zu beenden.
Ich könnte zuerst einen Befehl eingeben:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
Das wird wie oben beschrieben ordnungsgemäß verpackt, aber wenn ich nach oben drücke, um über den Bash-Verlauf darauf zuzugreifen, wird auf der Konsole nur Folgendes angezeigt:
83279836214c0.144847759343/
Daher fehlen die Eingabeaufforderung und die gesamte erste Zeile des Befehls, was die Bearbeitung erschwert. Wenn ich zur ersten Zeile zurück scrolle, wird diese angezeigt, die letzte Ausgabezeile wird jedoch überschrieben. Wenn ich den Befehl ausführe, wird der Rest der ersten Zeile angezeigt und alles sieht wie erwartet aus:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$
Was merkwürdiger ist, ist, dass wenn Sie den Verlauf verwenden, um auf den langen Befehl zuzugreifen, ihn aber noch nicht ausführt, Sie einen beliebigen C-a
Bildschirmbefehl verwenden, z. B. zu einem anderen Fenster und dann zurück wechseln oder wenn ich aus meinem aktuellen Terminalfenster heraus klicke und wieder hinein, der Befehl history wird nun wieder richtig angezeigt.
Also PS1='\u@\h:\w$ '
, da ist nichts Seltsames los.
Gibt es eine Möglichkeit, den gesamten Befehl bei Verwendung des Verlaufs korrekt anzuzeigen? Ich habe versucht, mit den Einstellungen für den Bildschirmumbruch zu spielen, aber sie machen die Sache nur noch schlimmer.
stty -a
zeigt an:
speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
quelle
TERM
istxterm-256color
undtput am; echo $?
gibt mir nur 0.stty -a
?Antworten:
Basierend auf der Antwort auf den obigen Kommentar scheint es, dass Sie TERM in einem Ihrer Startskripte überschreiben. Während Sie sich im Bildschirm befinden, sollte Ihr BEGRIFF auf "Bildschirm" und nicht auf "xterm-256color" eingestellt sein.
Ich würde Ihre Shell-Startskripte durchsehen. ~ / .bashrc, / etc / bash / bashrc und möglicherweise andere wie ~ / .bash_profile und / etc / profile, je nachdem, wie Sie alles eingerichtet haben. Wenn Sie Einstellungen für TERM = "..." sehen, müssen Sie diese entfernen.
quelle