默认情况下,当使用命令“ workon
prompt_COLOR1='0;36m'prompt_COLOR2='1;34m'PS1='n[ 33[$prompt_COLOR1](t)[ 33[$prompt_COLOR2] u @ w n[ 33[$prompt_COLOR1]$ [ 33[0;39m]'
这将产生以下命令提示符:
< old_line >(19:11:05) kevin @ ~/research $
使用“ workon
< old_line >(< name_of_env >)(19:11:05) kevin @ ~/research $
这比我想要的更混乱,而且启动的颜色错误。我希望有这样的东西:
< old_line >(< name_of_env >) (19:11:05) kevin @ ~/research $
IanBicking之前曾指出过virtualenvwrapper的钩子是解决方案,但我认为我会发布我的实际代码以节省一分钟的时间。
我只是编辑$ WORKON_HOME / postactivate文件以包括以下行:
# color virtualenv name properly and put it after the n if there is one at the start of the promptif [ ${_OLD_VIRTUAL_PS1:0:2} == 'n' ]; then PS1="n[ 33[$prompt_COLOR1](`basename "$VIRTUAL_ENV"`) ${_OLD_VIRTUAL_PS1:2:${#_OLD_VIRTUAL_PS1}}"else PS1="[ 33[$prompt_COLOR1](`basename "$VIRTUAL_ENV"`) $_OLD_VIRTUAL_PS1 "fi和瞧!颜色和位置是正确的,甚至当您直接从一个虚拟环境切换到另一个虚拟环境(我没想到)时,它甚至也可以使用。



