添加git-prompt到我的Bash配置文件破坏了我的Bash提示符pyenv / pyenv-virtualenv版本指示器。如何恢复pyenv提示?

时间:2015-12-06 23:00:53

标签: git bash prompt .bash-profile pyenv

当我设置pyenv + pyenv-virtualenv时,他们似乎会自动将当前的python版本名称或pyvenv / virtualenv名称添加到命令提示符中。很棒,很有用。

if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi

我已将git-completion.bashgit-prompt.sh添加到我的〜/ .bash_profile

# Enable tab completion
source ~/.git-completion.bash

# colors!
red="\[\033[1;31,\]"
green="\[\033[0;32m\]"
blue="\[\033[0;34m\]"
purple="\[\033[0;35m\]"
cyan="\[\033[1;36m\]"
reset="\[\033[0m\]"

# Change command prompt
source ~/.git-prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
# '\u' adds the name of the current user to the prompt
# '\$(__git_ps1)' adds git-related stuff
# '\W' adds the name of the current directory
export PS1="$purple\u $cyan>>>$green\$(__git_ps1)$blue \W \$ $reset"

无论顺序如何,pyenv都不包含在提示中。我一直希望pyenv只是在设置提示字符串时加入,以便在git之后包含它以允许它自己插入。

我已经尝试将pyenv代码包含在git之上,然后捕获$pyenv local输出并将其添加为变量,但我的Bash技能仍然缺乏。我在pyenv代码中搜索了shell提示符导出代码,但是再一次,Bash技能很缺乏。

是否有正确的方法将pyenv版本重新插入/插入提示符?

我正试图获得以下内容:

\u(username) >>> (pyenv/py(venv)-version) | (__git_ps1) | \w(pwd) \$

谢谢,

1 个答案:

答案 0 :(得分:1)

只需将$(pyenv version-name)贴在$PS1的适当位置即可。类似的东西:

export PS1="\u >>> $(pyenv version-name) $(__git_ps1) \w\$ "

(根据需要添加颜色。)