¿Se corrigieron los errores de visualización de ajuste de línea bash y retroceso en Mac OS X?


14

Cuando abro Terminal (en Mac OS X 10.5.8) y escribo una línea de comando larga: texto alternativo

... el texto no pasa a la siguiente línea cuando se ajusta: texto alternativo texto alternativo

Además, a veces cuando escribo un comando y luego retrocedo (o flecha hacia arriba o ^ U): texto alternativo

... toda la línea no se borra y no puedo retroceder más allá de cierto punto: texto alternativo texto alternativo

¿Es este un error conocido de bash (en Mac OS X)? ¿Hay alguna solución?

Actualización: Juliano estaba en lo correcto, el problema fue causado por delimitar incorrectamente una secuencia de código de consola en mi variable PS1. Cambiando:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '

... en mi .bashrcpara:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '

...resuelve el problema.


1
+1 para las capturas de pantalla más hermosas de una pantalla de terminal que he visto.
— Pausado hasta nuevo aviso.

1
Las dos líneas de código que mostró en su actualización son idénticas.
— Magne

Buena captura, @Magne. Han pasado cuatro años desde que vi esto, así que no recuerdo específicamente, pero supongo que faltaba el "antes" a \].
— Daryl Spitzer

no son idénticos: el primero tiene en \]lugar de '[`
— Ohad Cohen

Respuestas:


19

El comportamiento es consistente con tener códigos de consola en su solicitud (para cambiar el color, etc.) y no marcarlos correctamente para que bash sepa que son invisibles.

Antes que nada, haz esto:

PS1='\w\$ '

Y luego inténtalo de nuevo. Si se resuelve el problema, mis sospechas son correctas.

Cada secuencia de código de consola debe estar delimitada con \[y \]en la variable PS1. Le dicen a bash que lo que esté allí no mueve la posición del cursor. Lea el manual de bash para más información.


Ese fue el problema. ¡Gracias! Actualizaré mi pregunta con detalles.
— Daryl Spitzer

¿Y si no resuelve el problema?
— Levesque

3

Para ayudar a generar un aviso desinfectado, intente http://www.kirsle.net/wizards/ps1.html es bastante impresionante. Solo tenga cuidado con los corchetes en su mensaje, intenta escapar de ellos o algo así.


+1 Si bien la respuesta de @ Juliano es técnicamente correcta, este enlace aquí es lo que establece los tputcomandos correctos , que ha corregido la nueva línea, `` nueva línea y otras correcciones de 'historial + retroceso' que no pueden solucionarse usando otros códigos ANSI.
— Eric Duncan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.