如何修改 conda 'source activate' ps1 行为
how to modify conda 'source activate' ps1 behavior
我目前的bashps1如下:
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
在我的 PS1
中插入 env-name
而不是,特别是在换行符之后?
我找到的最简单的解决方案是将换行符从 PS1
移动到 PROMPT_COMMAND
:
PROMPT_COMMAND="printf '\n'"
export PS1="\[$bldred\]\u\[$txtrst\]@\[$bldwht\]\h\[$txtrst\]:\[$bldcyn\]\w\[$txtrst\]$ "
这允许 conda
保持其默认 PS1
行为,同时用换行符分隔 bash 命令:
user@short-domain:fullpath$ source activate <env-name-here>
(<env-name-here>) user@short-domain:fullpath$
Conda 具有禁用更改提示的设置:changeps1: False
(in ~/.condarc
)。然后您可以自己添加 ($(basename "$CONDA_PREFIX")
)。
这类似于virtualenv,如果设置了$VIRTUAL_ENV_DISABLE_PROMPT
,它不会更新提示,所以你可以自己打印$(basename "$VIRTUAL_ENV")
。
我目前的bashps1如下:
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
在我的 PS1
中插入 env-name
而不是,特别是在换行符之后?
我找到的最简单的解决方案是将换行符从 PS1
移动到 PROMPT_COMMAND
:
PROMPT_COMMAND="printf '\n'"
export PS1="\[$bldred\]\u\[$txtrst\]@\[$bldwht\]\h\[$txtrst\]:\[$bldcyn\]\w\[$txtrst\]$ "
这允许 conda
保持其默认 PS1
行为,同时用换行符分隔 bash 命令:
user@short-domain:fullpath$ source activate <env-name-here>
(<env-name-here>) user@short-domain:fullpath$
Conda 具有禁用更改提示的设置:changeps1: False
(in ~/.condarc
)。然后您可以自己添加 ($(basename "$CONDA_PREFIX")
)。
这类似于virtualenv,如果设置了$VIRTUAL_ENV_DISABLE_PROMPT
,它不会更新提示,所以你可以自己打印$(basename "$VIRTUAL_ENV")
。