El terminal Bash no ajusta el texto correctamente

El terminal Bash no ajusta el texto correctamente

Estoy usando gnome-terminalwith bash, y cuando tengo un comando que debería pasar de la línea, simplemente permanece en la misma línea. Entonces en lugar de:

echo "abcdefghijklmnopqrstuvwxyz"

yo obtendría

opqrstuvwxyz""abcdefghijklmn

O algo parecido a eso. Sin embargo, si presiono Intro, el comando seguirá funcionando. Creo que tiene algo que ver con mi variable PS1, pero no sé qué tiene de malo. Aquí lo tienes:

export PS1='\e[1;35m[\u:\w]\$\e[0;35m '

Respuesta1

Esto parece algo relacionado:

La página de manual de Bash recomienda empaquetar la tputsalida . \[ \]Esto ayuda a Bash a ignorar los caracteres no imprimibles para que calcule correctamente el tamaño del mensaje.

Fuente.

"La tputsalida" en su caso se ve así: \e[1;35m( \e[0;35mhay dos fragmentos separados para envolver). Podrían escribirse \033[1;35mtambién \033[0;35m. En general, es necesario envolver cualquier secuencia no imprimible.

Modifiqué tu PS1:

export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '

y parece funcionar para mí sin el problema.

información relacionada