2012-02-01 05:37:51 +01:00
|
|
|
#
|
2012-04-15 20:21:08 +02:00
|
|
|
# Sets history options and defines history aliases.
|
2012-02-01 05:37:51 +01:00
|
|
|
#
|
|
|
|
# Authors:
|
|
|
|
# Robby Russell <robby@planetargon.com>
|
|
|
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
|
|
#
|
|
|
|
|
2012-08-04 20:48:32 +02:00
|
|
|
#
|
|
|
|
# Options
|
|
|
|
#
|
|
|
|
|
2011-10-11 04:16:06 +02:00
|
|
|
setopt BANG_HIST # Treat the '!' character specially during expansion.
|
2012-04-15 20:21:08 +02:00
|
|
|
setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
|
2011-10-11 04:16:06 +02:00
|
|
|
setopt SHARE_HISTORY # Share history between all sessions.
|
2012-06-02 23:17:12 +02:00
|
|
|
setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history.
|
|
|
|
setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again.
|
|
|
|
setopt HIST_IGNORE_ALL_DUPS # Delete an old recorded event if a new event is a duplicate.
|
|
|
|
setopt HIST_FIND_NO_DUPS # Do not display a previously found event.
|
|
|
|
setopt HIST_IGNORE_SPACE # Do not record an event starting with a space.
|
|
|
|
setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history file.
|
2012-04-15 20:21:08 +02:00
|
|
|
setopt HIST_VERIFY # Do not execute immediately upon history expansion.
|
|
|
|
setopt HIST_BEEP # Beep when accessing non-existent history.
|
2011-06-01 08:48:26 +02:00
|
|
|
|
2018-10-12 10:55:55 +02:00
|
|
|
#
|
|
|
|
# Variables
|
|
|
|
#
|
|
|
|
|
2021-05-02 05:27:00 +02:00
|
|
|
HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}" # The path to the history file.
|
2018-10-12 10:55:55 +02:00
|
|
|
HISTSIZE=10000 # The maximum number of events to save in the internal history.
|
|
|
|
SAVEHIST=10000 # The maximum number of events to save in the history file.
|
|
|
|
|
2012-08-04 20:48:32 +02:00
|
|
|
#
|
2012-04-04 20:03:38 +02:00
|
|
|
# Aliases
|
2012-08-04 20:48:32 +02:00
|
|
|
#
|
2012-04-04 20:03:38 +02:00
|
|
|
|
|
|
|
# Lists the ten most used commands.
|
2012-09-06 13:16:58 +02:00
|
|
|
alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
|
2021-05-02 05:27:00 +02:00
|
|
|
|
|
|
|
if [[ -s "${OLD_HISTFILE::=${HISTFILE:h}/.zhistory}" ]]; then
|
|
|
|
|
|
|
|
# New 'HISTFILE' doesn't exist yet, rename legacy one if available and notify.
|
|
|
|
if [[ ! -s "$HISTFILE" ]]; then
|
|
|
|
<<EON
|
|
|
|
NOTICE: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
|
|
|
|
to '${HISTFILE/#$HOME/~}'.
|
|
|
|
Attempting to rename the existing 'HISTFILE' ...
|
|
|
|
EON
|
2021-05-05 18:44:41 +02:00
|
|
|
command mv -v "$OLD_HISTFILE" "$HISTFILE"
|
2021-05-02 05:27:00 +02:00
|
|
|
|
|
|
|
# New 'HISTFILE' does exist and is older than legacy one, just warn.
|
|
|
|
elif [[ "$OLD_HISTFILE" -nt "$HISTFILE" ]]; then
|
|
|
|
<<EOW
|
|
|
|
WARNING: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
|
|
|
|
to '${HISTFILE/#$HOME/~}'.
|
|
|
|
Either set 'HISTFILE' in '${${0:h}/#$HOME/~}'
|
|
|
|
or move previous history from '${OLD_HISTFILE/#$HOME/~}' to
|
|
|
|
'${HISTFILE/#$HOME/~}'.
|
|
|
|
EOW
|
|
|
|
fi
|
|
|
|
|
|
|
|
unset OLD_HISTFILE
|
|
|
|
fi
|