moved parts of prompt to rprompt

This commit is contained in:
Paweł Płazieński 2015-12-22 14:36:15 +01:00
parent 4d7e8eae57
commit 9fd5dfc2e7

66
.zshrc
View File

@ -109,29 +109,40 @@ CURRENT_BG='NONE'
# Characters # Characters
SEGMENT_SEPARATOR_FORWARD="\ue0b0" SEGMENT_SEPARATOR_FORWARD="\ue0b0"
SEGMENT_SEPARATOR_BACKWARD="\ue0b2"
prompt_segment() { prompt_segment() {
if [[ -z $3 ]]; then return; fi local direction newbg newfg text
local newbg newfg direction="$1"
[[ -n $1 ]] && newbg="%K{$1}" || newbg="%k" newbg="$2"
[[ -n $2 ]] && newfg="%F{$2}" || newfg="%f" newfg="$3"
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then text="$4"
print -n "%{$newbg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR_FORWARD%{$newfg%}" if [[ -z $text ]]; then return; fi
else if [[ $newbg != $CURRENT_BG ]]; then
print -n "%{$newbg%}%{$newfg%}" if [[ "$direction" == 'forward' ]]; then
if [[ $CURRENT_BG != 'NONE' ]]; then
print -n "%{%K{$newbg}%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR_FORWARD%{%F{$newfg}%}"
else
print -n "%{%K{$newbg}%F{$newfg}%}"
fi
else
print -n "%{%F{$newbg}%}$SEGMENT_SEPARATOR_BACKWARD%{%F{$newfg}%K{$newbg}%}"
fi
fi fi
print -n " $3 " print -n " $text "
CURRENT_BG=$1 CURRENT_BG=$newbg
} }
# End the prompt, closing any open segments # End the prompt, closing any open segments
prompt_end() { prompt_end() {
if [[ -n $CURRENT_BG ]]; then if [[ -n $CURRENT_BG ]]; then
print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR_FORWARD" print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR_FORWARD"
else
print -n "%{%k%}"
fi fi
print -n "%{%f%}" CURRENT_BG=''
}
prompt_clear() {
print -n "%{%k%f%}"
CURRENT_BG='' CURRENT_BG=''
} }
@ -181,24 +192,33 @@ prompt_status() {
} }
## Main prompt ## Main prompt
prompt_main() { prompt_forward() {
CURRENT_BG='NONE' CURRENT_BG='NONE'
prompt_segment green black "$(date +%R)" # prompt time prompt_segment forward black default "$(prompt_status)"
prompt_segment black default "$(prompt_status)" prompt_segment forward red yellow "$(prompt_root)"
prompt_segment red yellow "$(prompt_root)" prompt_segment forward magenta black "$(prompt_user)"
prompt_segment magenta black "$(prompt_user)" prompt_segment forward cyan black "$(prompt_host)"
prompt_segment cyan black "$(prompt_host)" prompt_segment forward blue black '%~' # prompt directory
prompt_segment blue black '%~' # prompt directory
prompt_segment magenta black "$MAVEN_PROJECT" # prompt maven project
prompt_segment yellow black "$vcs_info_msg_0_" # prompt vcs
prompt_end prompt_end
prompt_clear
}
## Reverse prompt
prompt_backward() {
CURRENT_BG='NONE'
prompt_segment backward magenta black "$MAVEN_PROJECT" # prompt maven project
prompt_segment backward yellow black "$vcs_info_msg_0_" # prompt vcs
prompt_segment backward green black "%T" # prompt time
prompt_clear
} }
prompt_precmd() { prompt_precmd() {
vcs_info vcs_info
PROMPT="%{%f%b%k%}$(prompt_main) " PROMPT="%{%f%b%k%}$(prompt_forward) "
RPROMPT="%{%f%b%k%}$(prompt_backward)"
} }
ZLE_RPROMPT_INDENT=0
prompt_opts=(cr subst percent) prompt_opts=(cr subst percent)
add-zsh-hook precmd prompt_precmd add-zsh-hook precmd prompt_precmd