2012-09-05 3 views
5

Ive ha giocato con il file .profile nella mia home directory, al fine di mostrare il ramo git sul prompt e anche per mostrare il rvm gemset e python virtual env Im attualmente in ... per lo più tutto funziona bene, il problema che sto avendo è che per mostrare il ramo in un colore diverso a seconda dello stato del ramo devo fare source ~/.profile ogni volta, anche io devo fare lo stesso in per mostrare python virtualenv in CYAN.Mac OSX prompt git branch aware

Ci deve essere un modo o qualcosa che mi manca in modo che non devo eseguire source ~/.profile ogni volta che vado in una cartella diversa in modo che il colore del ramo si basa sullo stato.

Heres mio .profile

https://gist.github.com/3628788

Grazie per il vostro aiuto per capire questo fuori!

risposta

6

Utilizzare la variabile PROMPT_COMMAND per definire una funzione che imposta il PS1 dopo ogni comando. Mettete questo in fondo il file .profile al posto del compito di 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 

Ora, appena prima di visualizzare il prompt, bash eseguirà la funzione prompt_cmd, aggiornando PS1 per le informazioni più recenti in base al PYTHON_VIRTUALENV , set_rvm_prompt() e parse_git_branch().

+0

Ho dovuto aggiungere set_rvm_prompt e parse_git_branch a prompt_cmd, e ora funziona come un incantesimo! ... Ecco il file aggiornato https://gist.github.com/3354613 – maumercado