在使用 Oh My Zsh 的经典主题 ys 时,如果你安装了 Anaconda 或 Miniconda,默认情况下 Conda 会强行在 Prompt 最前方插入一行 (base)。这不仅破坏了主题原本的双行美感,还让终端显得异常臃肿。
本文将分享如何通过微调 .zshrc,将 Conda 环境名无缝嵌入到用户名与主机名之后,并保持 ys 原汁原味的配色方案。
默认情况下,终端可能是这样的:
三行显示不仅浪费空间,且视觉上非常割裂。我们期望的目标是将其压缩回两行,并让环境名成为“身份标识”的一部分:
直接将以下逻辑添加至你的 ~/.zshrc 文件末尾(确保在 ZSH_THEME=”ys” 之后):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| # ---------------------------------------------------------------- # ohmyzsh ys 主题:将 Conda 环境名集成入行内 # ----------------------------------------------------------------
# 1. 禁止 Conda 默认的换行显示(否则切换环境后,行首可能出现重复的环境名) export CONDA_CHANGEPS1=false
# 2. 定义 Conda 环境显示格式 # 仅在环境激活时返回带括号的名称 function conda_prompt_info() { [[ -n $CONDA_DEFAULT_ENV ]] || return echo "($CONDA_DEFAULT_ENV) " }
# 3. 重新定义 ys 主题的 PROMPT 核心逻辑 PROMPT="%{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \ %{$fg[cyan]%}%n%{$reset_color%}@%{$fg[green]%}%m%{$reset_color%} \ %{$fg[magenta]%}\$(conda_prompt_info)%{$reset_color%}\ in %{$terminfo[bold]$fg[yellow]%}%~%{$reset_color%}\ \$(git_prompt_info) \ %{$fg[white]%}[%*]%{$reset_color%} %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}"
|