1 votos

Copiar y pegar la cadena en el terminal deja un aspecto de área vacía colgando

Si ves la campana en el título, significa que cuando borro la cadena llegaba al signo $ y daba un aviso de campana. Pero lo extraño es que mi cursor no es completamente claro la cadena, que todavía está dejando mi URL a la izquierda allí. Ya he comprobado PS1 en mi perfil de bash y se ve así

export PS1='\e[1;32m\W \t \e[1;31m\u \e[1;32m$ \e[0m'

Pero cuando cambio el tamaño de la ventana del terminal, de repente vuelve a ser normal.

copy paste

2voto

awy Puntos 500

Es necesario encerrar los caracteres no imprimibles correctamente en \[...\] bloque. Esto garantiza que se cuente el número correcto de caracteres al generar el aviso.

Yo tuve el mismo problema y aquí está la PS1 que no dio problemas hasta ahora :

\[\e[30;47m\]$(parse_git_branch)\W\[\e[30;47m\]$\[\e[0m\]

Eso es lo que entiendo de lo que he leído en SO:

Debe añadir \[ antes de cualquier código ANSI inicial y añadir \] después de las finales. Ejemplo: en el uso habitual: \033[32mThis is in green\033[0m para PS0/1/2/4: \[\033[32m\]This is in green\[\033[m\]

\[ es para el inicio de una secuencia de no imprimible caracteres \] es para el final de una secuencia de no imprimible caracteres

Consejo: para memorizarlo puedes añadir primero \[\] y luego poner su ANSI entre ellos:
- \[start-ANSI-code\]
- \[end-ANSI-code\]

https://stackoverflow.com/q/5947742/28938235#28938235

https://stackoverflow.com/q/17432993/

https://stackoverflow.com/q/20697195/20698168#20698168

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X