Добавление git-prompt в мой профиль Bash уничтожило индикатор версии pyenv/pyenv-virtualenv в приглашении Bash. Как восстановить 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.bash и < href="https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh" rel="nofollow">git-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 код экспорта приглашения оболочки, но опять же, нужны навыки Bash.

Есть ли правильный способ вернуть/вставить версию pyenv обратно в приглашение?

Я пытался получить что-то вроде:

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

Спасибо,


person TST    schedule 06.12.2015    source источник


Ответы (1)


Просто вставьте $(pyenv version-name) в нужное место в $PS1. Что-то типа:

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

(Добавьте обратно свои цвета, если хотите.)

person wjv    schedule 11.04.2016