我有在Mac OSX上运行的virtualenv(10.8.2),虽然它可以工作(我可以设置venvs,在它们之间切换,激活和解除关联),但是一件不起作用的功能是终端提示开关。为什么virtualenv没有设置我的终端提示符?
我的基本提示是[\u] \w \n\[\033[0;31m\]$\[\e[0m\]
,其呈现为:
[hugo] /current/directory/path/
$
即它具有在其一个换行符。
如果我激活的virtualenv,我希望:
(myproject)[hugo] /current/directory/path/
$
但事实上我得到一点变化都没有。
我已经打开了/bin/activate
剧本,看着代码:
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
如果我在坚持到底的回声,我可以看到的是,PS1
var设置(myproject)[\u] \w \n\[\033[0;31m\]$\[\e[0m\]
,但出于某种原因,没有粘附,并且正确的PS1没有被导出。
这是我的自定义提示或权限问题?这很明显是而不是这是一个virtualenv的东西,因为我知道它的工作原理(事实上它适用于我的流浪VM,而不是我的OSX主机)。
?
[更新1]
我的错误 - 它看起来像我有一个混帐感知提示,这是覆盖取决于目录/回购的状态提示。这是什么杀死venv提示符。现在我只需要一个可以同时执行的操作 - 因此,后续问题是:是否有人有颜色,git-aware,OSX提示符,这些提示符与virtualenv很好地匹配。
烨分开 - 感谢 - 我的工作了最终 – 2013-02-22 08:57:55
Likewise-不得不摆弄。添加在.bashrc末尾不会直接工作,而是直接在.bashrc中的其他提示设置下复制粘贴此脚本(与virtualenv文件夹中的“bin/activate”中的内容相同) ,但在PS1出口之前,它的工作。 – Nate 2014-01-21 17:02:34
我认为需要在最后一个林中添加一个分号e $ PROMPT_COMMAND和add_venv_info之间,以使其工作。 – jgosmann 2017-07-12 18:48:10