Display the execution time of the last command

Thanks to @paulirish for that awesome idea!
This commit is contained in:
Sindre Sorhus
2012-10-17 22:53:35 +02:00
parent 3c9b554154
commit fce3351be3
3 changed files with 28 additions and 4 deletions

View File

@@ -7,6 +7,9 @@
# Change this to your own username # Change this to your own username
local default_username='sindresorhus' local default_username='sindresorhus'
# Threshold (sec) for showing cmd exec time
CMD_MAX_EXEC_TIME=5
# For my own and others sanity # For my own and others sanity
# git: # git:
@@ -34,11 +37,24 @@ git_dirty() {
git diff --quiet --ignore-submodules HEAD 2>/dev/null; [ $? -eq 1 ] && echo '*' git diff --quiet --ignore-submodules HEAD 2>/dev/null; [ $? -eq 1 ] && echo '*'
} }
# Displays the exec time of the last command if set threshold was exceeded
cmd_exec_time() {
local stop=`date +%s`
local start=${cmd_timestamp:-$stop}
let local elapsed=$stop-$start
[ $elapsed -gt $CMD_MAX_EXEC_TIME ] && echo ${elapsed}s
}
preexec() {
cmd_timestamp=`date +%s`
}
precmd() { precmd() {
vcs_info vcs_info
# Remove `%*` to hide the time # Add `%*` to show the time
print -P '\n%F{blue}%~%F{236}$vcs_info_msg_0_ $username%*%f' print -P '\n%F{blue}%~%F{236}$vcs_info_msg_0_`git_dirty` $username%f %F{yellow}`cmd_exec_time`%f'
# Reset value since `preexec` isn't always triggered
unset cmd_timestamp
} }
# Turns the prompt red if the last command exited with 0 # Turns the prompt red if the last command exited with 0

View File

@@ -4,11 +4,19 @@ Pretty, minimal and fast ZSH prompt
![screenshot](https://raw.github.com/sindresorhus/pure/master/screenshot.png) ![screenshot](https://raw.github.com/sindresorhus/pure/master/screenshot.png)
## Overview ## Overview
Most prompts are ugly, cluttered and slow. I wanted something visually pleasing that stayed out of my way. Most prompts are cluttered, ugly and slow. I wanted something visually pleasing that stayed out of my way.
Pure only shows the current user if it's not the default. It shows the current git branch and if it's dirty using the fastest method possible. And the prompt symbol turns red if the last command exited with 0. ### Why?
- Comes with the perfect prompt character. Author went through the whole Unicode range to find it.
- Username is only displayed if not default
- Shows git branch and if it's dirty using the [fastest](https://gist.github.com/3898739) method available
- Prompt character turns red if the last command didn't exit with 0
- Command execution time will be displayed if it exceeds the set threshold
- Can easily be used as a starting point for your own custom prompt
## Getting Started ## Getting Started

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 30 KiB