最近,我试了一试哦,我的zsh,一切看起来都很好,直到我尝试了虚拟化和虚拟包装。当我在普通bash上激活virtualenv (例如,测试)时,我将看到虚拟化名称如下:
(test)abc@abc:但是,当我切换到zsh时,我看不到virtualenv名称。尽管如此,我还是在我的zsh插件中添加了virtualenv和虚拟包装器。我还检查了虚拟服务器的激活文件,它包含:
f [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
fi
export PS1
fi是因为比较式"x“=x返回true吗?
更新:I试图在activate文件中回显$PS1,得到如下结果:
(test) %{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}%{$fg[cyan]%}⇒%{$reset_color%}$PS1似乎是正确的,但是当我在终端中回显$PS1时,(测试)就消失了。似乎$PS1被其他东西覆盖了!
发布于 2016-08-13 05:22:57
发现问题,是因为主题。我在上述案例中使用的主题是pygmalion,它不允许您更改$PS1。
在更改到robbyrussell主题后,我可以在终端中更改$PS1,但仍然看不到虚拟主机的名称。经过一段时间的调试后,我发现默认情况下,虚拟插件oh禁用提示符:
# disables prompt mangling in virtual_env/bin/activate
export VIRTUAL_ENV_DISABLE_PROMPT=1所以,只要在虚拟插件中注释掉一行,问题就解决了。
发布于 2017-10-30 13:53:44
在~/.zshrc中这样做
plugins=(virtualenv)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status virtualenv)注意事项:
除了你拥有的其他插件之外,还可以添加这个插件。
我用的是POWERLEVEL9K主题。也许你的主题
发布于 2017-02-17 01:28:35
最好的解决方案是将以下内容添加到您的~/. best文件的末尾:
export VIRTUAL_ENV_DISABLE_PROMPT=这将覆盖virtualenv.plugin.zsh中的值-无需更改该文件。
https://stackoverflow.com/questions/38928717
复制相似问题