如何解决zsh + oh-my-zsh 使用conda时不显示环境名称的问题

环境macOS。

当我初次安装anaconda时,在terminal中(使用bash)会显示,表示我当前正在conda的base环境中。切换后(如使用命令conda activate python2),可以成功观察到变化

但在使用zsh时,却不显示行头的(python2)提示符,这使得如何知晓当前处在哪个环境变得很麻烦。

经过搜索研究,发现问题如下:

我使用的配置是zsh + oh-my-zsh + powerlevel9k (基本都是默认设置), 在powerlevel0k.zsh-theme 文件中(在我的本地目录下路径为/Users/chzhengy/.oh-my-zsh/custom/themes/powerlevel9k/powerlevel0k.zsh-theme ), 有两行参数POWERLEVEL9K_LEFT_PROMPT_ELEMENTS 和 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS,其默认设置为:

defined POWERLEVEL9K_LEFT_PROMPT_ELEMENTS || POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs)
defined POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS || POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)

括号中的内容即为在iterm中命令行里抬头会显示哪些内容。我们需要将anaconda参数加到我们想要的位置(左右皆可,看个人喜好),我选择将其加到左侧第一个的位置,因此修改后为

defined POWERLEVEL9K_LEFT_PROMPT_ELEMENTS || POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(anaconda context dir vcs)
defined POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS || POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)

保存设置后重新启动iterm即可

 效果如图:

 如果使用virtualenv时出现同样不显示的问题,方法如上。在参数行新增:

defined POWERLEVEL9K_LEFT_PROMPT_ELEMENTS || POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(virtualenv anaconda context dir vcs)
defined POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS || POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)

即可解决

posted @ 2019-05-29 02:44  CZYTHSS  阅读(4920)  评论(0编辑  收藏  举报