feat: prompt_subst

This commit is contained in:
ange 2024-04-25 11:06:55 +02:00
parent 7c98658d24
commit 57243c81fa
Signed by: ange
GPG Key ID: 9E0C4157BB7BEB1D

View File

@ -32,7 +32,7 @@ function +vi-git-untracked(){
}
function preexec() {
_timer_start="$SECONDS"
PROMPT_timer="$SECONDS"
}
function _get_time() {
@ -51,23 +51,21 @@ function _get_time() {
}
function precmd() {
IFS='|' local timer ctx err="${pipestatus[*]}"
IFS='|' local ctx timer err="${pipestatus[*]}"
[ "$_timer_start" -gt 0 ] && timer="$((SECONDS - _timer_start))"
_timer_start=-1
[ -n "$PROMPT_timer" ] && timer="$((SECONDS - PROMPT_timer))"
unset -m 'PROMPT_*'
ctx="$(kubectx -c)"
vcs_info
PROMPT=''
[ -n "$ctx" ] && PROMPT+="%{%F{134}%}$ctx/$(kubens -c)%{%f%b%} "
PROMPT+='%{%B%F{32}%}%~%{%f%b%} '
PROMPT+="$vcs_info_msg_0_"
[ "$timer" -ge 2 ] && PROMPT+="%{%F{101}%}$(_get_time "$timer")%{%f%b%} "
[[ "$err" =~ [1-9] ]] && PROMPT+="%{%F{160}%}${err[*]}%{%f%b%} "
RPROMPT=''
RPROMPT+=' %{%F{71}%}%(1j.%j.)%{%f%b%}'
[ -n "$VIRTUAL_ENV" ] && RPROMPT+=" %{%F{37}%}${VIRTUAL_ENV:h:t}%{%f%b%}"
[ -n "$ctx" ] && PROMPT_K8S="%{%F{134}%}$ctx/$(kubens -c)%{%f%b%} "
[ "$timer" -ge 2 ] && PROMPT_TIMER="%{%F{101}%}$(_get_time "$timer")%{%f%b%} "
[[ "$err" =~ [1-9] ]] && PROMPT_ERR="%{%F{160}%}$err%{%f%b%} "
[ -n "$VIRTUAL_ENV" ] && PROMPT_VENV=" %{%F{37}%}${VIRTUAL_ENV:h:t}%{%f%b%}"
}
setopt PROMPT_SUBST
PROMPT='$PROMPT_K8S%{%B%F{32}%}%~%{%f%b%} $vcs_info_msg_0_$PROMPT_TIMER$PROMPT_ERR'
RPROMPT='%{%F{71}%}%(1j.%j.)%{%f%b%}$PROMPT_VENV'