forked from extern/ohmyzsh
ed4e317bbb
oh-my-zsh Changes the HISTSIZE and SAVEHIST values to fixed sizes, however if a bigger value is set in ~/.zshrc, it will override it, potentially causing the user history to be deleted. So, only set these values if no other is set and if it is lower than the default ones.
40 lines
1.5 KiB
Bash
40 lines
1.5 KiB
Bash
## History wrapper
|
|
function omz_history {
|
|
local clear list
|
|
zparseopts -E c=clear l=list
|
|
|
|
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
|
|
# unless a number is provided, show all history events (starting from 1)
|
|
[[ ${@[-1]-} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1
|
|
fi
|
|
}
|
|
|
|
# Timestamp format
|
|
case ${HIST_STAMPS-} in
|
|
"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' ;;
|
|
*) alias history="omz_history -t '$HIST_STAMPS'" ;;
|
|
esac
|
|
|
|
## History file configuration
|
|
[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"
|
|
[ "$HISTSIZE" -lt 50000 ] && HISTSIZE=50000
|
|
[ "$SAVEHIST" -lt 10000 ] && 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 share_history # share command history data
|