如何在命令行提示符中同时显示conda环境和git分支?

5

如何设置PS1,以使git和conda都可以在bash中显示? 带有virtualenv和git分支的Bash命令提示符

我发现如下关于如何在bash shell中进行此操作,但我在macosx中使用zsh。使用zsh是否会以同样的方式工作?我在我的~/.zshrc中有以下内容

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/carlos/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/blah/profile.d/conda.sh" ]; then
        . "/blah/opt/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/blah/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

我尝试使用此链接https://medium.com/pareture/simplest-zsh-prompt-configs-for-git-branch-name-3d01602a6f33,但它不包含git分支信息。有人能够扩展一下,以便包括git分支信息吗?
1个回答

1

1. 禁用 conda 自动修改命令提示符 (PS1)

已经安装了 conda,可以在终端中运行以下命令:

conda config --set changeps1 false

或者只需将changeps1: false添加到~\.condarc文件中。这将禁用conda对提示的自动修改。

2. 修改提示以显示conda环境和分支

接下来,使用任何文本编辑器打开~\.zshrc,并在文件底部添加以下代码:

# Determines prompt modifier if and when a conda environment is active
precmd_conda_info() {
  if [[ -n $CONDA_PREFIX ]]; then
      if [[ $(basename $CONDA_PREFIX) == "anaconda3" ]]; then
        # Without this, it would display conda version. Change to miniconda3 if necessary
        CONDA_ENV="(base) "
      else
        # For all environments that aren't (base)
        CONDA_ENV="($(basename $CONDA_PREFIX)) "
      fi
  # When no conda environment is active, don't show anything
  else
    CONDA_ENV=""
  fi
}

# Display git branch
function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}

# Run the previously defined function before each prompt
precmd_functions+=(precmd_conda_info)

# Define colors
COLOR_CON=$'%F{141}'
COLOR_DEF=$'%f'
COLOR_USR=$'%F{247}'
COLOR_DIR=$'%f'
COLOR_GIT=$'%F{215}'

# Allow substitutions and expansions in the prompt
setopt prompt_subst

PROMPT='${COLOR_CON}$CONDA_ENV${COLOR_USR}%n ${COLOR_DIR}%1~ ${COLOR_GIT}$(parse_git_branch)${COLOR_DEF}$ '

3. 应用更改

在终端中运行source ~/.zshrc

4. 参考资料

修改conda环境提示显示设置的原始代码: 如何在zsh中修改anaconda环境提示?

显示git分支的原始代码: 将Git分支名称添加到终端提示中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接