La pantalla corta el comienzo del comando largo cuando se accede a través del historial de bash

9

Estoy usando las versiones predeterminadas de bash y screen en OS X Lion.

Cuando estoy en una sesión de pantalla y me desplazo hacia atrás a través del historial de bash y llego a un comando que es lo suficientemente largo como para ajustar.

Primero podría escribir algún comando:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

Eso se ajusta correctamente como se escribió anteriormente, pero si presiono hacia arriba para acceder a través del historial de bash, la consola solo muestra:

83279836214c0.144847759343/

Por lo tanto, falta el indicador y toda la primera línea del comando, lo que dificulta la edición; Si vuelvo a la primera línea, aparece pero sobrescribe la última línea de salida. Cuando ejecuto el comando, se muestra el resto de la primera línea y todo se ve como se esperaba:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

Lo que es más curioso, es que si uso el historial para acceder al comando largo pero aún no lo ejecuto, entonces use cualquier C-acomando de pantalla, como cambiar a otra ventana y luego regresar, o si hago clic fuera de mi ventana de terminal actual y de nuevo en él, el comando de historial ahora se muestra correctamente nuevamente.

Mi PS1='\u@\h:\w$ 'así que no hay nada extraño pasando allí.

¿Hay alguna manera de mostrar correctamente todo el comando cuando se usa el historial? He intentado jugar con la configuración de ajuste de pantalla, pero solo empeoran las cosas.

stty -a muestra:

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;
selassid
fuente
¿Puedes hacer echo $ TERM cuando está dentro de la pantalla y proporcionar la salida? Además, si ejecuta tput am; echo $ ?, que obtienes?
Patrick
TERMes xterm-256colory tput am; echo $?solo me da 0.
selassid
Además, esto solo sucede cuando se desplaza por el historial en la parte inferior de una ventana, por lo que todo el texto tendría que moverse hacia arriba para mostrarle la segunda línea del comando en su historial.
selassid
¿Cuál es el resultado de stty -a?
Andy Smith
Lo he agregado al final de la publicación. Coincide con la salida cuando la pantalla no se está ejecutando.
selassid

Respuestas:

1

Según la respuesta al comentario anterior, parece que está anulando TERM en uno de sus scripts de inicio. Mientras está dentro de la pantalla, su TERM debe estar configurado como 'pantalla', no 'xterm-256color'.

Me gustaría ver a través de sus scripts de inicio de shell. ~ / .bashrc, / etc / bash / bashrc, y posiblemente otros como ~ / .bash_profile y / etc / profile dependiendo de cómo tenga todo configurado. Si ve alguna configuración de TERM = "...", debe eliminarlas.

Patricio
fuente
Eso era cierto, pero incluso después de eliminarlos, y comprobar que TERM es "pantalla" dentro de la pantalla todavía no soluciona el problema.
selassid 01 de
¿Tiene un ~ / .inputrc o / etc / inputrc? Si es así, asegúrese de que el modo de desplazamiento horizontal no esté configurado o que esté desactivado.
Patrick
Tengo un ~ / .inputrc, pero el modo de desplazamiento horizontal no está configurado y desactivarlo no cambia el comportamiento. Tengo entrada-meta y salida-meta activada y convert-meta desactivada, pero eliminar esa configuración no cambia el comportamiento.
selassid