Zshテーマintheloops
を使用します。仮想環境がない場合、テーマは次のようになります。アクティブです
-- an empty line --
[sourabh@skynet] ~/Code/Django_apps/cope (master) ⚡
❯
そして、envアクティブです、
(env name)
[sourabh@skynet] ~/Code/Django_apps/cope (master) ⚡
❯
いくつかのvirtualenvがアクティブなときにこのように見せることができますか
-- empty line --
(env name) [sourabh@skynet] ~/Code/Django_apps/cope (master) ⚡
❯
.zsh-theme
ファイル
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}"
local Host_color="green"
if [ -n "$SSH_CLIENT" ]; then
local Host_color="red"
fi
Prompt='
%{$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%} '
RPROMPT='${return_status}%{$reset_color%}'
ZSH_THEME_GIT_Prompt_PREFIX="%{$fg[yellow]%}(%{$fg[yellow]%}"
ZSH_THEME_GIT_Prompt_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_Prompt_DIRTY="%{$fg[yellow]%}) %{$fg[pink]%}⚡%{$reset_color%}"
ZSH_THEME_GIT_Prompt_CLEAN="%{$fg[grey]%})"
ZSH_THEME_GIT_Prompt_BEHIND_REMOTE="%{$fg_bold[Magenta]%}↓%{$reset_color%}"
ZSH_THEME_GIT_Prompt_AHEAD_REMOTE="%{$fg_bold[Magenta]%}↑%{$reset_color%}"
ZSH_THEME_GIT_Prompt_DIVERGED_REMOTE="%{$fg_bold[Magenta]%}↕%{$reset_color%}"
プロンプトの変更方法は、仮想環境ディレクトリ内のスクリプトbin/activate
で定義されています。このファイルは、テンプレートからvirtualenv
によって作成されます。残念ながら、テンプレートによって提供されるプロンプト変更の唯一の方法は、(env name)
または--Prompt
で設定されたものを先頭に追加することです。
必要に応じてプロンプトを変更するには、bin/activate
のプロンプトの設定を回避し、テーマファイルのPrompt
の定義を変更することをお勧めします。
最初に次をyour.zsh-theme
(または.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
Prompt
の定義の2行目の前に%(1V.(%1v).)
を追加します。これは次のようになります。
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%} '
何らかの色が必要な場合は、たとえば%(1V.%{$fs_bold[yellow]%}(%1v)%{$reset_color%}.)
を追加できます。
説明:
virtenv_indicator
は、プロンプトが作成される前に毎回呼び出されます。 $VIRTUAL_ENV
が設定されており、空ではないかどうかを確認します。その場合、$psvar
配列の最初の要素を$VIRTUAL_ENV
に設定し、直前の/
を含むすべてを削除します(basename $VIRTUAL_ENV
と同様ですが、より安価です)
Prompt
の定義で、%(1V.(%1v).)
は、$psvar
の最初の要素が空でなく(%(1V.true-text.false-text)
)設定されているかどうかをチェックし、この要素のコンテンツといくつかの括弧((%1v)
)
export VIRTUAL_ENV_DISABLE_Prompt=yes
は、bin/activate
スクリプトによるプロンプト設定を無効にします。
Oh-my-zsh
にはvirtualenv
プラグインが含まれるようになったので、config
で有効にするだけです。
prezto を使用している場合は、アクティブなvirtualenvを表示する方法に関する指示をここで見つけることができます: https://github.com/sorin-ionescu/prezto/tree/master/modules/python#theming