Sto usando le versioni predefinite di bash e screen in OS X Lion.
Quando sono in una sessione dello schermo e scorro indietro nella cronologia della bash e arrivo a un comando che è abbastanza lungo da avvolgere.
Potrei prima digitare un comando:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
Questo si avvolge correttamente come scritto sopra, ma se premo per accedervi tramite la cronologia di bash, la console visualizza solo:
83279836214c0.144847759343/
Quindi manca il prompt e l'intera prima riga del comando, il che rende difficile la modifica; se scorro indietro fino alla prima riga, appare ma sovrascrive l'ultima riga di output. Quando eseguo il comando, viene visualizzato il resto della prima riga e tutto sembra come previsto:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$
La cosa più curiosa è che se uso la cronologia per accedere al comando lungo ma non lo eseguo ancora, allora uso qualsiasi C-a
comando su schermo, come passare a un'altra finestra e poi indietro, o se faccio clic fuori dalla finestra del mio terminale corrente e al suo interno, il comando della cronologia ora viene nuovamente visualizzato correttamente.
Mio PS1='\u@\h:\w$ '
quindi non c'è niente di strano che sta succedendo lì.
C'è un modo per mostrare correttamente l'intero comando quando si usa la cronologia? Ho provato a giocare con le impostazioni di avvolgimento dello schermo, ma peggiorano le cose.
stty -a
Spettacoli:
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;
TERM
è xterm-256color
e tput am; echo $?
mi dà solo 0.
stty -a
?