zshでanaconda環境プロンプトを修正する方法は?

zshでanaconda環境プロンプトを修正する方法は?

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

    MacOS、iTerm2

  • VSCode統合端末

    VSCode統合端末

関連情報