Sou*_*abh 3 themes zsh prompt virtualenv
我使用 zsh 主题intheloops。当没有虚拟环境时,主题看起来像这样。活跃
-- an empty line --
[sourabh@skynet] ~/Code/django_apps/cope (master) ?
?
Run Code Online (Sandbox Code Playgroud)
当一个环境。活跃,
(env name)
[sourabh@skynet] ~/Code/django_apps/cope (master) ?
?
Run Code Online (Sandbox Code Playgroud)
当某些 virtualenv 处于活动状态时,我可以使它看起来像这样吗
-- empty line --
(env name) [sourabh@skynet] ~/Code/django_apps/cope (master) ?
?
Run Code Online (Sandbox Code Playgroud)
.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%}"
Run Code Online (Sandbox Code Playgroud)
如何更改提示bin/activate在虚拟环境目录内的脚本中定义。该文件是由virtualenv模板创建的。不幸的是,模板提供的提示修改的唯一方法是前置(env name)或任何设置为--prompt.
要以您想要的方式修改提示,我建议绕过提示的设置bin/activate并修改PROMPT主题文件中的定义。
首先将以下内容添加到您的.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
Run Code Online (Sandbox Code Playgroud)
并%(1V.(%1v).)在定义的第二行前面添加PROMPT。它应该看起来像这样:
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%} '
Run Code Online (Sandbox Code Playgroud)
如果你想要一些颜色,你可以添加%(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)) 并添加 this 元素的内容加上一些括号 ( (%1v))
export VIRTUAL_ENV_DISABLE_PROMPT=yes禁用bin/activate脚本的任何提示设置。
| 归档时间: |
|
| 查看次数: |
6048 次 |
| 最近记录: |