修改 oh-my-zsh 主题使其正确显示 Conda 环境信息

oh-my-zsh 的预设主题都挺好看的,最近用的是 bira

看上去好的,但是 activate 了 conda 的环境之后。。

就有点奇怪了。查阅资料动手修改:
首先取消掉默认的环境显示

conda config --set changeps1 False

这时候一开始的 (base) 就会消失了。然后修改 oh-my-zsh 的主题文件 $HOME/.oh-my-zsh/themes/bira.zsh-theme
每个主题的内容都不一样,不过修改起来大致差不多。
首先添加生成 Conda 环境信息的代码,可以根据需要修改颜色、符号等。

local conda_prompt='$(conda_prompt_info)'
conda_prompt_info() {
    if [ -n "$CONDA_DEFAULT_ENV" ]; then
        echo -n "%{$terminfo[bold]$fg[yellow]%}($CONDA_DEFAULT_ENV) %{$reset_color%}"
    else
        echo -n ''
    fi
}

然后找到生成PROMPT的代码,在bira中是

PROMPT="╭─${user_host}${current_dir}${rvm_ruby}${git_branch}${venv_prompt}
╰─%B${user_symbol}%b "

在合适的地方添加 Conda prompt 信息即可。如:

PROMPT="╭─${user_host}${conda_prompt}${current_dir}${rvm_ruby}${git_branch}${venv_prompt}
╰─%B${user_symbol}%b "

重新进入 zsh 即可看到效果。

注意$conda_prompt一定要写成函数的形式,否则PROMPT只会在启动 zsh 的时候获取一次 conda 环境信息,后续切换环境不会再改变。
类似地我们也可以给PROMPT添加时间信息等。

posted @ 2020-03-03 16:50  Glowming  阅读(4653)  评论(0编辑  收藏  举报