zsh에서 아나콘다 환경 프롬프트를 수정하는 방법은 무엇입니까?

zsh에서 아나콘다 환경 프롬프트를 수정하는 방법은 무엇입니까?

zsh에서 명령줄 프롬프트를 더 보기 좋게 만들기 위해 다음 줄을 추가했습니다 .zshrc.

PROMPT='%F{green}%n%f %B%F{blue}%1~%f%b $ '

그런데 아나콘다 가상 환경(즉, )을 활성화하면 conda activate base아래와 같이 왼쪽에 가상 환경의 이름이 보입니다.

(base) myusername ~ $

프롬프트의 가상 환경 부분을 수정하는 방법을 알고 싶습니다(예: 청록색으로 표시하고 싶습니다).

답변1

첫 번째 단계는 conda config --set changeps1 false실행을 통해 이미 언급한 기본 conda 프롬프트 수정자를 비활성화하는 것입니다.

다음으로 다음을 에 추가합니다 .zshrc.

# Determines prompt modifier if and when a conda environment is active
precmd_conda_info() {
  if [[ -n $CONDA_DEFAULT_ENV ]]; then
    CONDA_ENV="($CONDA_DEFAULT_ENV) "
  # When no conda environment is active, don't show anything
  else
    CONDA_ENV=""
  fi
}

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

# Allow substitutions and expansions in the prompt
setopt prompt_subst

PROMPT='%F{cyan}$CONDA_ENV%f%F{green}%n%f %B%F{blue}%1~%f%b $ '

이렇게 하면 conda 환경이 프롬프트의 나머지 부분 앞에 괄호와 청록색으로 표시됩니다.

굵게 표시하려면 해당 부분을 %B 및 %b로 묶습니다.

PROMPT='%B%F{cyan}$CONDA_ENV%b%f%F{green}%n%f %B%F{blue}%1~%f%b $ '

더 많은 색상을 사용하고 싶다면 실행하여 터미널에서 지원하는지 확인하세요 echo $TERM. 반환된 경우 xterm-256color중괄호 안의 색상을 0에서 255 사이의 값으로 바꿀 수 있습니다. 색상을 보실 수 있습니다여기.

답변2

달리기:

conda config --set changeps1 False

또는 .changeps1: False.condarc

답변3

것 같다 알레페의 답변Conda 환경을 전환하는 데 실패했습니다.

이 문제는 약간만 변경하면 해결될 수 있습니다.

  1. 아직,conda config --set changeps1 false
  2. 이 스니펫을~/.zshrc
    # ~/.zshrc
    precmd_get_conda_env_name() {
    if [[ -n $CONDA_PREFIX ]]; then
        if [[ $(basename $CONDA_PREFIX) == "miniconda3" ]]; then
            CONDA_ENV="base"
        else
            CONDA_ENV="$(basename $CONDA_PREFIX)"
        fi
    else
        CONDA_ENV=""
    fi
    }
    precmd_functions+=( precmd_get_conda_env_name )
    precmd_update_prompt() {
        PROMPT=$'\n'"%B%F{black}[%F{green}%D{%m/%d %H:%M}%F{black}] %F{red}%n%F{black}@%F{yellow}%m%F{black}:%F{cyan}%~"$'\n'"%F{magenta}($CONDA_ENV)%F{blue} ➜ %f%b"
    }
    precmd_functions+=( precmd_update_prompt )
    

결과는 다음과 같습니다.

  • iTerm2

    맥OS,iTerm2

  • VSCode 통합 터미널

    VSCode 통합 터미널

관련 정보