-# zshrc/80_history
#
-# Set up command line history functions
+# Configure history file storage
#
# Copyright © 1994–2017 martin f. krafft <madduck@madduck.net>
# Released under the terms of the Artistic Licence 2.0
# typeset -g on this one to make warn_create_global happy
typeset -g HISTFILE=$ZVARDIR/history-$HOST
-[[ -e $ZVARDIR/history ]] && mv $ZVARDIR/history $HISTFILE
HISTSIZE=10000
SAVEHIST=$HISTSIZE
LISTMAX=1000
-# treat ! specially like csh did
-setopt bang_hist
+# properly lock the file on write (better on modern operating systems)
+setopt hist_fcntl_lock
-# ignore duplicates in the history
-setopt hist_ignore_dups
-
-# save timestamp and duration with each event
-setopt extended_history
+# add history lines to the $HISTFILE incrementally (as soon as they are
+# entered), rather than waiting until the shell exits.
+setopt inc_append_history
+setopt no_append_history
-# properly lock the file on write, if that option exists
-setopt hist_fcntl_lock 2>/dev/null
-
-# skip over non-contiguous duplicates when searching history
-setopt hist_find_no_dups
+# do not store duplicates in the history file
+setopt hist_ignore_dups
# don't store commands starting with a space in the history file
setopt hist_ignore_space
-# don't store history/fc -l invocations
-setopt hist_no_store
-
# remove superfluous blanks from each command line
setopt hist_reduce_blanks
+# skip over non-contiguous duplicates when searching history
+setopt hist_find_no_dups
+
+# save timestamp and duration with each event
+setopt extended_history
+
# vim:ft=zsh