He puesto lo siguiente en mi archivo ~/.localsh para personalizar mi indicador bash cuando trabajo con git.Elementos dinámicos en bash PS1
Básicamente quiero que se muestre la rama actual en mi terminal. La herramienta gitk muestra ramas con fondo verde y primer plano en negro, así que eso es lo que estoy tratando de hacer.
Lo que tengo funciona, pero cuando presiono la flecha hacia arriba en el teclado para retroceder a través de los comandos anteriores, se sobrescribe.
Esto ha sucedido antes cuando no terminaba una secuencia de colores con [\ e [0m]. Ahora me está sucediendo por llamar a la función getgitbranch. Creo que tiene algo que ver con el terminal sin saber cuánto tiempo es el mensaje.
Entonces, aquí está la pregunta ... ¿Cómo uso correctamente los elementos dinámicos en mi aviso de bash y no lo arreglo cuando utilizo las flechas hacia arriba?
function getgitbranch()
{
git branch | grep "^\*" | cut -c3-
}
function blabla()
{
PS1=""
PS1="$PS1\[\e[0;30m\]\[\e[42m\]\[\$(getgitbranch)\]\[\e[0;49m\]\[\e[0m\] "
PS1="$PS1\[\e[1;35m\][\[\e[0m\]"
PS1="$PS1\[\e[1;33m\]\w\[\e[0m\]"
PS1="$PS1\[\e[1;35m\]]\[\e[0m\]"
PS1="$PS1 \[\e[1;31m\]>\[\e[0m\] "
export PS1
}
Si está utilizando la finalización de git bash (que es increíble) puede poner $ (__ git_ps1) allí, y obtener el nombre de la sucursal de forma mucho más robusta - comentarios si está en medio de la base de datos, etc. - como así como indicadores en cuanto al estado de su árbol de trabajo (modificaciones, modificaciones por etapas). – Cascabel