oh-my-bash/lib/history.sh

63 lines
1.9 KiB
Bash
Raw Normal View History

#! bash oh-my-bash.module
2017-03-19 17:13:00 +07:00
shopt -s histappend # append to bash_history if Terminal.app quits
2017-03-19 15:40:25 +07:00
## Command history configuration
if [ -z "$HISTFILE" ]; then
HISTFILE=$HOME/.bash_history
2017-03-19 15:40:25 +07:00
fi
# some moderate history controls taken from sensible.bash
## SANE HISTORY DEFAULTS ##
# Append to the history file, don't overwrite it
shopt -s histappend
# Save multi-line commands as one command
shopt -s cmdhist
# Re-edit the command line for failing history expansions
shopt -s histreedit
# Re-edit the result of history expansions
shopt -s histverify
# save history with newlines instead of ; where possible
shopt -s lithist
# Record each line as it gets issued
_omb_util_add_prompt_command 'history -a'
# Unlimited history size. Doesn't appear to slow things down, so why not?
# Export these variables to apply them also to the child shell sessions.
export HISTSIZE=
export HISTFILESIZE=
# Avoid duplicate entries
HISTCONTROL="erasedups:ignoreboth"
# Don't record some commands
export HISTIGNORE="&:[ ]*:exit:ls:bg:fg:history:clear"
# Enable incremental history search with up/down arrows (also Readline goodness)
# Learn more about this here: http://codeinthehole.com/writing/the-most-important-command-line-tip-incremental-hi
# bash4 specific ??
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
bind '"\e[C": forward-char'
bind '"\e[D": backward-char'
2017-03-19 15:40:25 +07:00
# Use standard ISO 8601 timestamp
# %F equivalent to %Y-%m-%d
# %T equivalent to %H:%M:%S (24-hours format)
2017-03-19 15:40:25 +07:00
# Show history
case $HIST_STAMPS in
"[mm/dd/yyyy]") HISTTIMEFORMAT=$'\033[31m[%m/%d/%Y] \033[36m[%T]\033[0m ' ;;
"[dd.mm.yyyy]") HISTTIMEFORMAT=$'\033[31m[%d.%m.%Y] \033[36m[%T]\033[0m ' ;;
"[yyyy-mm-dd]") HISTTIMEFORMAT=$'\033[31m[%F] \033[36m[%T]\033[0m ' ;;
"mm/dd/yyyy") HISTTIMEFORMAT='%m/%d/%Y %T ' ;;
"dd.mm.yyyy") HISTTIMEFORMAT='%d.%m.%Y %T ' ;;
"yyyy-mm-dd"|*) HISTTIMEFORMAT='%F %T ' ;;
esac