moved parts of prompt to rprompt
This commit is contained in:
parent
4d7e8eae57
commit
9fd5dfc2e7
66
.zshrc
66
.zshrc
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user