mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-16 10:50:07 +00:00
a8f7f9f707
BREAKING CHANGE: we have fixed a bug in the `history` wrapper for OMZ which means that running just history will now not show all the history since the 1st command, but only recent ones. To get the previous behavior, you can run `history 1` to get all the command history, or other commands such as `history -30` to get the last 30 commands.
40 lines
1.4 KiB
Bash
40 lines
1.4 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"
|
|
fc -p "$HISTFILE"
|
|
echo >&2 History file deleted.
|
|
elif [[ -n "$list" ]]; then
|
|
# if -l provided, run as if calling `fc' directly
|
|
builtin fc "$@"
|
|
else
|
|
# otherwise, run `fc -l` with a custom format
|
|
builtin fc -l "$@"
|
|
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
|