2009-10-02 13 views
9

Video que muestra el problema: http://www.mentaframework.org/download/TerminalBug.movMac Terminal.app error molesto - ¿Cómo solucionarlo?

Cuando estoy escribiendo sobre la Terminal.app y llegar al final de la línea, la siguiente línea comienza en la parte superior de la primera línea, sobrescribir todo. Entonces, si uso la tecla Eliminar todo se arruina y desaparece.

Hice un ssh en la misma terminal a un host diferente y funcionó bien, ¿puede ser un problema con la configuración de mi shell?

Ver la película para ver lo que sucede:

Gracias,

-Sergio

+0

Hola Sergio. Probablemente tengas mejor suerte en http://superuser.com. –

+1

El video es un enlace roto. –

Respuesta

18

Usted necesidad de marcar los códigos de escape en la variable PS1 que está configurando su pronta color. El caparazón necesita saber que no son imprimibles y luego calculará el ajuste de línea correctamente.

Aquí hay un enlace a una explicación y algunos ejemplos:

http://www.artemfrolov.com/articles/coloured-bash-prompt

El consejo rápido:

\[  begins a sequence of non-printing characters 
\]  ends a sequence of non-printing characters 
+0

¡Eso lo hizo! ¡Muchas gracias! – TraderJoeChicago

+0

No hay problema. Feliz de ayudar. –

+0

La URL está rota –

1

http://www.artemfrolov.com/articles/coloured-bash-prompt es actualmente blanco (como en, visitar en Chrome/Firefox/Opera y ver solo espacios en blanco, sin contenido). Así que después de estudiar el ejemplo here, estoy encontrando que la conversión:

export PS1='\e[0;32m\[email protected]\h\e[m \D{%b %d} \t $ ' 

que se rompe, a

export PS1='\[\e[0;32m\]\[email protected]\h\[\e[m\] \D{%b %d} \t $ ' 

parece que funciona para mí (como un ejemplo adicional, específica).

Por otra parte, y un poco fuera de tema, pero útil (por lo menos mi referencia): para actualizar el anterior con útiles "camino comprimido" y en negrita verde-user @ host en el símbolo:

export MYPS='$(echo -n "${PWD/#$HOME/~}" | awk -F "/" '"'"'{if (length($0) > 14) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF; else if (NF>3) print $1 "/" $2 "/.../" $NF; else print $1 "/.../" $NF; } else print $0;}'"'"')' 
export PS1='\[\e[1;32m\]\[email protected]\h\[\e[m\] \D{%b %d} \t $(eval "echo ${MYPS}")$ ' 

** Editar **: esta asignación de PS1 (la 2da línea), imo, es mucho más fácil de leer:

export MYPS='$(echo -n "${PWD/#$HOME/~}" | awk -F "/" '"'"'{if (length($0) > 14) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF; else if (NF>3) print $1 "/" $2 "/.../" $NF; else print $1 "/.../" $NF; } else print $0;}'"'"')' 
export PS1='[email protected]\[$(tput bold)\]$(hostname -s)\[$(tput sgr0)\] \D{%b %d} \t $(eval "echo ${MYPS}")$ ' 
+0

¿Por qué recibí un voto a favor de lo anterior? –

Cuestiones relacionadas