add command timer to prompt

This commit is contained in:
Andrey Anurin
2018-08-13 22:54:04 +03:00
parent 4896940b90
commit 8f08b10405
2 changed files with 16 additions and 1 deletions

View File

@@ -50,6 +50,7 @@ bindkey "\eOF" end-of-line
# saves $EPOCHSECONDS # saves $EPOCHSECONDS
zmodload zsh/datetime zmodload zsh/datetime
zmodload zsh/mathfunc
# profiler # profiler
# zmodload zsh/zprof # zmodload zsh/zprof

View File

@@ -21,6 +21,7 @@ COLOR_PWD_ROOT='red'
COLOR_PROMPT_STARTER='green' COLOR_PROMPT_STARTER='green'
COLOR_TIME='green' COLOR_TIME='green'
COLOR_USERHOSTNAME='blue' COLOR_USERHOSTNAME='blue'
COLOR_DURATION='magenta'
NEWLINE=$'\n' NEWLINE=$'\n'
@@ -41,10 +42,22 @@ function prompt_abra_precmd {
PRE=$(print ${(l:${COLUMNS}:)PRE}) PRE=$(print ${(l:${COLUMNS}:)PRE})
# print -P '%(!.%F{${COLOR_PWD_ROOT}}.%F{${COLOR_PWD}})${PRE}%f' # print -P '%(!.%F{${COLOR_PWD_ROOT}}.%F{${COLOR_PWD}})${PRE}%f'
print -P '%F{${COLOR_PWD}}${PRE}%f' print -P '%F{${COLOR_PWD}}${PRE}%f'
if [[ -z $PREEXEC_TIME ]]; then
EXECTIME=0
else
EXECTIME=$(( EPOCHREALTIME - PREEXEC_TIME ))
fi
if (( EXECTIME > 5 )); then
DURATION=$(TZ=GMT; strftime '%H:%M:%S ' $(( int(rint(EXECTIME)) )) )
else
DURATION=''
fi
} }
function prompt_abra_preexec { function prompt_abra_preexec {
# echo hi PREEXEC_TIME=$EPOCHREALTIME
} }
function prompt_abra_setup { function prompt_abra_setup {
@@ -88,6 +101,7 @@ function prompt_abra_setup {
RPROMPT=$RPROMPT'%(?..%F{red}%?%f )' # last command code if nonzero RPROMPT=$RPROMPT'%(?..%F{red}%?%f )' # last command code if nonzero
RPROMPT=$RPROMPT'%B%(!.%F{${COLOR_PWD_ROOT}}.%F{${COLOR_USERHOSTNAME}})%n@%M%f%b' RPROMPT=$RPROMPT'%B%(!.%F{${COLOR_PWD_ROOT}}.%F{${COLOR_USERHOSTNAME}})%n@%M%f%b'
RPROMPT=$RPROMPT'${git_info[rprompt]} ' RPROMPT=$RPROMPT'${git_info[rprompt]} '
RPROMPT=$RPROMPT'%F{$COLOR_DURATION}$DURATION%f'
RPROMPT=$RPROMPT'%F{$COLOR_TIME}%*%f' RPROMPT=$RPROMPT'%F{$COLOR_TIME}%*%f'
} }