Configured more sophisticated prompt.

git push
This commit is contained in:
2018-08-14 15:01:30 +02:00
parent c350af00e7
commit 112ee2b097
+78 -1
View File
@@ -15,7 +15,7 @@ fi
### Configure oh-my-zsh
ZSH_THEME="pygmalion"
# ZSH_THEME="pygmalion"
plugins=(
git
@@ -30,6 +30,83 @@ source $ZSH/oh-my-zsh.sh
### Configure zsh
# Configure prompt
prompt_segment() {
[[ -n $1 ]] && color=$1 || return
[[ -n $2 ]] && text='%{$fg['$color']%}'$2'%{$reset_color%}' || return
[[ -n $3 ]] && sep='%{$fg[red]%}'$3'%{$reset_color%}' || sep=''
echo -n $sep$text
}
prompt_git() {
(( $+commands[git] )) || return
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""
echo -n "git:$(git_prompt_info)"
fi
}
prompt_virtualenv() {
local virtualenv_path="$VIRTUAL_ENV"
if [[ -n $virtualenv_path ]]; then
text="penv:`basename $virtualenv_path`"
echo -n $text
fi
}
prompt_condaenv() {
local env_path="$CONDA_PREFIX"
if [[ -n $env_path ]]; then
text="cenv:`basename $env_path`"
echo -n $text
fi
}
prompt_extensions=(prompt_virtualenv prompt_condaenv prompt_git)
build_prompt() {
# build base prompt
PROMPT=$(prompt_segment magenta '%n')
PROMPT+=$(prompt_segment red '@')
PROMPT+=$(prompt_segment yellow '%m')
PROMPT+=$(prompt_segment red ':')
PROMPT+=$(prompt_segment cyan '%0~')
# build prompt for extensions
local prompt_ext_text=""
local sep=""
for ext in $prompt_extensions; do
local ext_text=$(eval $ext)
if [[ -n $prompt_ext_text ]] && [[ -n $ext_text ]]; then
sep=","
else
sep=""
fi
prompt_ext_text+=$(prompt_segment green $ext_text $sep)
done
# build prompt base - extension separator
if [[ -n $prompt_ext_text ]]; then
PROMPT+=$(prompt_segment red '|')
fi
PROMPT+=$prompt_ext_text
# build prompt suffix
local prompt_nocolor=$(echo $PROMPT | perl -pe "s/%\{[^}]+\}//g")
local prompt_length=${#prompt_nocolor}
if [[ $prompt_length -gt 40 ]]; then
PROMPT+=$(prompt_segment cyan '\n%{\r%}⇒ ')
else
PROMPT+=$(prompt_segment cyan ' ⇒ ')
fi
}
precmd_functions+=(build_prompt)
HISTSIZE=20000
HISTFILE=~/.zsh_history
SAVEHIST=$HISTSIZE