Como o prompt é alterado é definido no script bin/activate dentro do diretório do ambiente virtual. Este arquivo é criado por virtualenv de um modelo. Infelizmente, a única maneira de modificação rápida fornecida pelo modelo é prefixar (env name) ou o que for definido com --prompt .
Para modificar o prompt da maneira que você quer, sugiro contornar a configuração do prompt em bin/activate e modificar a definição de PROMPT em seu arquivo de tema.
Primeiro, adicione o seguinte ao seu .zsh-theme (ou .zshrc )
export VIRTUAL_ENV_DISABLE_PROMPT=yes
function virtenv_indicator {
if [[ -z $VIRTUAL_ENV ]] then
psvar[1]=''
else
psvar[1]=${VIRTUAL_ENV##*/}
fi
}
add-zsh-hook precmd virtenv_indicator
e adicione %(1V.(%1v).) na frente da segunda linha da definição de PROMPT . Deveria então ficar assim:
PROMPT='
%(1V.(%1v).)%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status)
%{$fg_bold[cyan]%}❯%{$reset_color%} '
Se você quiser alguma cor, adicione %(1V.%{$fs_bold[yellow]%}(%1v)%{$reset_color%}.) , por exemplo.
Explicação :
virtenv_indicator será chamado toda vez antes que o prompt seja criado. Verifica se $VIRTUAL_ENV está definido e não está vazio. Nesse caso, ele define o primeiro elemento da matriz $psvar como $VIRTUAL_ENV com tudo antes e incluindo o último / removido (como basename $VIRTUAL_ENV , mas menos caro)
Na definição de PROMPT %(1V.(%1v).) verifica se o primeiro elemento de $psvar está definido e não vazio ( %(1V.true-text.false-text) ) e adiciona o conteúdo desse elemento mais alguns parênteses ( (%1v) )
export VIRTUAL_ENV_DISABLE_PROMPT=yes desativa qualquer configuração de prompt por bin/activate scripts.