jka*_*imi 7 bash .bash-profile ps1 conda
我目前的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\]$ "
Run Code Online (Sandbox Code Playgroud)
但是,运行:
source activate <env-name-here>
Run Code Online (Sandbox Code Playgroud)
默认情况下,告诉conda您env-name将my 放在前面PS1:
(<env-name-here>)
user@short-domain:fullpath$
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉我在换行符后conda插入env-name我PS1的代码呢?
Conda具有禁用更改提示的设置:changeps1: False(in ~/.condarc)。然后,您可以自己添加($(basename "$CONDA_PREFIX"))。
这类似于virtualenv,它不会更新提示(如果$VIRTUAL_ENV_DISABLE_PROMPT已设置),因此您可以$(basename "$VIRTUAL_ENV")自己打印。
我发现的最简单的解决方案是将换行符从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\]$ "
Run Code Online (Sandbox Code Playgroud)
这样可以conda在PS1用换行符分隔bash命令的同时保持其默认行为:
user@short-domain:fullpath$ source activate <env-name-here>
(<env-name-here>) user@short-domain:fullpath$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4163 次 |
| 最近记录: |