2012-09-05 14 views
5

he estado jugando con el archivo .profile en mi directorio personal, con el fin de mostrar la rama Git en el símbolo y también para mostrar la gemset RVM y env python virtuales Im actualmente en su mayoría ... todo funciona bien, el problema que estoy teniendo es que con el fin de mostrar la rama de un color diferente dependiendo del estado de la rama que tengo que hacer source ~/.profile cada vez, también tengo que hacer lo mismo en para mostrar el virtualenv de python en CYAN.Mac OS X rama pronta git conscientes

Tengo que ser una forma o algo que me falta para no tener que ejecutar la fuente ~/.profile cada vez que voy a una carpeta diferente para que el color de la rama se base en el estado.

Heres mi .profile

https://gist.github.com/3628788

Gracias por su ayuda calcular esto!

Respuesta

6

utilizar la variable PROMPT_COMMAND para definir una función que establece su PS1 después de cada comando. Poner esto en la parte inferior de su archivo .profile en lugar de la asignación a PS1:

prompt_cmd() { 
    PS1="${PYTHON_VIRTUALENV}$PURPLE\$(set_rvm_prompt)$NO_COLOUR\[email protected]\h:[\W]${B_STATE}\$(parse_git_branch)$NO_COLOUR\$ " 
} 

PROMPT_COMMAND=prompt_cmd 

Ahora, justo antes de mostrar su pronta, bash ejecutará la función prompt_cmd, actualización PS1 para la información más reciente de acuerdo con PYTHON_VIRTUALENV , set_rvm_prompt() y parse_git_branch().

+0

he tenido que añadir set_rvm_prompt y parse_git_branch a prompt_cmd, y ahora funciona como un encanto! ... Aquí está el archivo actualizado https://gist.github.com/3354613 – maumercado