Terminal PS1 y colores

4

Soy usado desde Linux para tener un indicador de color en mis shells y también quiero implementar eso en mi OS X Terminal.app. Sin embargo, la Terminal reacciona de manera diferente. Si utilizo mi código PS1 normal, el lado derecho de cualquier línea se cortará en un punto extraño (seguramente no en el extremo derecho de la ventana de la Terminal). Y también la siguiente línea no se mostrará en la siguiente línea sino en la misma línea.

reacción esperada:

erik2:~[06:46 am]$ expectedexpectedexpectedexpectedexpectedexpectedexpect
edexpected_

reacción real:

ectedexpected_am]$ expectedexpectedexpectedexpectedexp

¿Eso es normal para Terminal? ¿Hay alguna alternativa? Acabo de codificar algo mal? Eche un vistazo a mi código de PS1:

export PS1="3[0;34m\u:\W\e[0;32m[\@]\e[m3[0;34m$3[m "
    
pregunta erikbwork 04.04.2011 - 09:05

1 respuesta

4

Necesitas escapar de las partes no imprimibles del aviso rodeando con \[…\] .

export PS1="\[3[0;34m\]\u:\W\[\e[0;32m\][\@]\[\e[m3[0;34m$3[m\] "

De lo contrario, readline se confunde con el espacio restante en la línea de comandos.

    
respondido por el Harald Hanche-Olsen 04.04.2011 - 09:45

Lea otras preguntas en las etiquetas