summaryrefslogtreecommitdiff
path: root/lib/history.zsh
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2018-04-25 15:36:48 -0600
committerTuowen Zhao <ztuowen@gmail.com>2018-04-25 15:36:48 -0600
commit1481f7aa67df42bdf45953231637194ac200d240 (patch)
tree7d41eb6b369e3ab0f25753623c966b69340e54cf /lib/history.zsh
parentb7b623d6de696b81d213ec666d072851561d5c06 (diff)
parent9cd3701ac0297f4bdf9673ea0dffa8ffdaea63e8 (diff)
downloadzsh-1481f7aa67df42bdf45953231637194ac200d240.tar.gz
zsh-1481f7aa67df42bdf45953231637194ac200d240.tar.bz2
zsh-1481f7aa67df42bdf45953231637194ac200d240.zip
Merge branch 'master' of https://github.com/robbyrussell/oh-my-zsh
Diffstat (limited to 'lib/history.zsh')
-rw-r--r--lib/history.zsh55
1 files changed, 36 insertions, 19 deletions
diff --git a/lib/history.zsh b/lib/history.zsh
index 5de71c2d3..7d4e59d00 100644
--- a/lib/history.zsh
+++ b/lib/history.zsh
@@ -1,24 +1,41 @@
-## Command history configuration
-if [ -z "$HISTFILE" ]; then
- HISTFILE=$HOME/.zsh_history
-fi
+## History wrapper
+function omz_history {
+ # Delete the history file if `-c' argument provided.
+ # This won't affect the `history' command output until the next login.
+ zparseopts -E c=clear l=list
-HISTSIZE=10000
-SAVEHIST=10000
+ if [[ -n "$clear" ]]; then
+ # if -c provided, clobber the history file
+ echo -n >| "$HISTFILE"
+ echo >&2 History file deleted. Reload the session to see its effects.
+ elif [[ -n "$list" ]]; then
+ # if -l provided, run as if calling `fc' directly
+ builtin fc "$@"
+ else
+ # otherwise, call `fc -l 1` to show all available
+ # history (and pass additional parameters)
+ builtin fc "$@" -l 1
+ fi
+}
-# Show history
+# Timestamp format
case $HIST_STAMPS in
- "mm/dd/yyyy") alias history='fc -fl 1' ;;
- "dd.mm.yyyy") alias history='fc -El 1' ;;
- "yyyy-mm-dd") alias history='fc -il 1' ;;
- *) alias history='fc -l 1' ;;
+ "mm/dd/yyyy") alias history='omz_history -f' ;;
+ "dd.mm.yyyy") alias history='omz_history -E' ;;
+ "yyyy-mm-dd") alias history='omz_history -i' ;;
+ *) alias history='omz_history' ;;
esac
-setopt append_history
-setopt extended_history
-setopt hist_expire_dups_first
-setopt hist_ignore_dups # ignore duplication command history list
-setopt hist_ignore_space
-setopt hist_verify
-setopt inc_append_history
-setopt share_history # share command history data
+## History file configuration
+[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"
+HISTSIZE=50000
+SAVEHIST=10000
+
+## History command configuration
+setopt extended_history # record timestamp of command in HISTFILE
+setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
+setopt hist_ignore_dups # ignore duplicated commands history list
+setopt hist_ignore_space # ignore commands that start with space
+setopt hist_verify # show command with history expansion to user before running it
+setopt inc_append_history # add commands to HISTFILE in order of execution
+setopt share_history # share command history data