|
@@ -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
|
|
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
|
|
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
|