私はCrunchbangでvirtualenv
、virtualenvwrapper
、zsh
、oh-my-zsh
、ターミネーターを使用しています。
現在のvirtualenv
の名前をそのように表示しようとしています
workon example
(example)...
私は多くの解決策を試しましたが、どれもうまくいかないようです これは私の.zshrcです ファイル、それを修正するのは大した問題ではないことを知っていますが、適切な解決策を見つけることができません。前回LinuxをDjango開発に使用して以来、長い間使用していたことを忘れていました。
現在、username@crunchbang
が表示されていますが、使用しているvirtualenvがわかりません。
virtualenv
環境内にはファイルbin/activate
があります。このファイルを編集して、プロンプトを任意の外観に変更できます。具体的には、ファイルのこのセクション:
...
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
...
変数PS1
は、シェルのプロンプトの外観を制御する特別な変数です。その値を変更すると、virtualenv
プロンプトが変更されます:
PS1="(this is my Prompt) "
サンプル環境を作成します。
$ virtualenv tst-env
virtualenv
を使用している場合、通常このファイルをソースとします。
$ cd $HOME/tst-env
$ source bin/activate
(tst-env)[saml@grinchy tst-env]$
上記の変更をPS1
ファイルの変数bin/activate
に行った後、私のプロンプトは次のようになります。
$ source bin/activate
(tst-env)
virtualenvwrapper
とzsh
を使用している場合は、~/.virtualenvs/
ディレクトリに多数のzshフックがあり、環境のカスタマイズに使用できます。 ここ はこれらに関する情報です。以下を追加することで、現在の作業virtualenv
をシェルプロンプトに追加するPS1
を強制的に更新できます。
_OLD_VIRTUAL_PS1=$PS1
PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
builtin \export PS1
~/.virtualenvs/postactivate
へ。 deactivate
を行ったときにタグを削除するには、以下を追加します。
PS1=$_OLD_VIRTUAL_PS1
builtin export PS1
~/.virtualenvs/postdeactivate
へ
これを壊すべき唯一の(もっともらしい)ことは、virtualenv
での作業中の~/.zshrc
のリソースです。
_~/.zshrc
_を編集する必要はありません。
virtualenvwrapper
を使用しているので、$WORKON_HOME/post(de)activate
ファイルにオプションまたはフックを追加することができます。
詳細を確認したい場合は、 ここ を参照してください。
上記のリンクを使用すると、次に行うことができます:
私の場合、virtualenvwrapperをインストールしたときにこのパスを変更したため、_$WORKON_HOME=~/Envs
_です。そうでない場合は、_~/.virtualenvs
_フォルダーが必要です。
_$WORKON_HOME
_にあるファイルpostactivate
を開きます
次の行を追加します。
_PS1="$_OLD_VIRTUAL_PS1"
_OLD_RPROMPT="$RPROMPT"
RPROMPT="%{${fg_bold[white]}%}(env: %{${fg[green]}%}`basename \"$VIRTUAL_ENV\"`%{${fg_bold[white]}%})%{${reset_color}%} $RPROMPT"
_
保存してお楽しみください!
(オプション)必要に応じて、postdeactivate
ファイルを編集して次の行を追加できます。
_RPROMPT="$_OLD_RPROMPT"
_
使用されているテーマがわかっている場合は、アクティブ化されたVIRTUAL_ENVベース名を取得する関数を追加して、*。zshのPrompt変数で使用できます。 〜/ .oh-my-zsh/themes /にある-themeファイル。これでうまくいくはずです。
私にとっては、デフォルトの「oh-my-zsh」テーマ、つまり'robbyrussels'が設定されていました。
function virtualenv_info {
[ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
}
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
Prompt='${ret_status} $(virtualenv_info) %{$fg[cyan]%}%c%{$reset_color%} $(git_Prompt_info)'
上記のコードを追加すると、以下の結果が生成されます。
(kunkka.com)は、私が非アクティブ化したvirtualenvです。
テーマファイルを編集した後は、必ず.zshrcファイルを読み込むようにしてください。
-> source ~/.zshrc
私はubuntu 14.04でそれをテストしただけで、同じ問題がありました。これを修正するには、これを.zshrcに追加します
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
またはこれをターミナルで実行する
echo source /usr/share/virtualenvwrapper/virtualenvwrapper.sh >> ~/.zshrc
Mac OS Xでは、
echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.zshrc