timer.plugin.zsh 477 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
preexec() {
  __timer_cmd_start_time=$(date '+%s')
}

precmd() {
  if [ -n "${__timer_cmd_start_time}" ]; then
    local cmd_end_time=$(date '+%s')
    local tdiff=$((${cmd_end_time} - ${__timer_cmd_start_time}))
    unset __timer_cmd_start_time
    local tdiffstr='/'
    if (( tdiff >= 60 )); then
      tdiffstr+="$((tdiff / 60))m"
    fi
    tdiffstr+="$((tdiff % 60))s"
    local cols=$(($COLUMNS - ${#tdiffstr} - 1))
    echo -e "\033[1A\033[${cols}C ${tdiffstr}"
  fi
}