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