我当前的bash ps1如下:
bldred='\e[1;31m' # Red
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
txtrst='\e[0m' # Text Reset - Useful for avoiding color bleed
export PS1="\n\[$bldred\]\u\[$txtrst\]@\[$bldwht\]\h\[$txtrst\]:\[$bldcyn\]\w\[$txtrst\]$ "
然而,运行:
source activate <env-name-here>
默认情况下,告诉conda
将env-name
添加到我的PS1
:
(<env-name-here>)
user@short-domain:fullpath$
有没有办法告诉conda
在我的env-name
中插入PS1
,具体来说就是在换行符之后?
答案 0 :(得分:5)
Conda有一个禁用更改提示的设置:changeps1: False
(in ~/.condarc
)。然后,您可以自己添加($(basename "$CONDA_PREFIX")
)。
这类似于virtualenv,如果设置$VIRTUAL_ENV_DISABLE_PROMPT
则不会更新提示,因此您可以自己打印$(basename "$VIRTUAL_ENV")
。
答案 1 :(得分:3)
我找到的最简单的解决方案是将换行符从PS1
移到PROMPT_COMMAND
:
bldred='\e[1;31m' # Red
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
txtrst='\e[0m' # Text Reset - Useful for avoiding color bleed
PROMPT_COMMAND="printf '\n'"
export PS1="\[$bldred\]\u\[$txtrst\]@\[$bldwht\]\h\[$txtrst\]:\[$bldcyn\]\w\[$txtrst\]$ "
这允许conda
在使用换行符分隔bash命令时保持其默认PS1
行为:
user@short-domain:fullpath$ source activate <env-name-here>
(<env-name-here>) user@short-domain:fullpath$