|
|
@@ -72,10 +72,18 @@ if [ ! "$ZSH_VERSION" ]; then
|
|
|
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
|
|
|
else
|
|
|
SAVEHIST=$HISTSIZE
|
|
|
- setopt SHARE_HISTORY
|
|
|
- setopt EXTENDED_HISTORY
|
|
|
- setopt HIST_EXPIRE_DUPS_FIRST
|
|
|
- setopt HIST_IGNORE_SPACE # ignore if leading space
|
|
|
+ setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
|
|
|
+ setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
|
|
|
+ setopt APPEND_HISTORY # append to history file
|
|
|
+ setopt SHARE_HISTORY # Share history between all sessions.
|
|
|
+ setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history.
|
|
|
+ setopt HIST_IGNORE_SPACE # Do not record an event starting with a space.
|
|
|
+ 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_SAVE_NO_DUPS # Do not write a duplicate event to the history file.
|
|
|
+ setopt HIST_VERIFY # Do not execute immediately upon history expansion.
|
|
|
+ setopt HIST_NO_STORE # Don't store history commands
|
|
|
fi
|
|
|
|
|
|
# Auto fetch and ask to pull if outdated once every 30 days
|
|
|
@@ -83,7 +91,7 @@ DOTFILES_DIR="$HOME/.dotfiles"
|
|
|
DOTFILES_GIT_DIR="$DOTFILES_DIR/.git"
|
|
|
DOTFILES_GIT_FETCH_HEAD_PATH="$DOTFILES_GIT_DIR/FETCH_HEAD"
|
|
|
DOTFILES_CHECK_DAYS=30
|
|
|
-if [ -d "$DOTFILES_GIT_DIR" ] && [ $(( $(date +%s) - $(date -r "$DOTFILES_GIT_FETCH_HEAD_PATH" +%s) )) -gt $(( $DOTFILES_CHECK_DAYS * 24 * 60 * 60 )) ]; then
|
|
|
+if [ -d "$DOTFILES_GIT_DIR" ] && [[ ! -f "$DOTFILES_GIT_FETCH_HEAD_PATH" || $(( $(date +%s) - $(date -r "$DOTFILES_GIT_FETCH_HEAD_PATH" +%s) )) -gt $(( $DOTFILES_CHECK_DAYS * 24 * 60 * 60 )) ]]; then
|
|
|
# auto fetch repo
|
|
|
git -C "$DOTFILES_DIR" fetch || :
|
|
|
# complain if branch is outdated and ask to update
|
|
|
@@ -155,22 +163,29 @@ if [ "${BAT_BIN:=$(get_bin bat)}" ]; then
|
|
|
alias -g -- --help='--help 2>&1 | bat -p -l=help'
|
|
|
fi
|
|
|
|
|
|
+ # monkeypatch tail to use bat to colorize things
|
|
|
+ if [ "${TAIL_BIN:=$(get_bin tail)}" ]; then
|
|
|
+ tail(){
|
|
|
+ LAST_ARG=${@[-1]}
|
|
|
+ if [ "$LAST_ARG" ]; then
|
|
|
+ LAST_FILE=$(ls -1 "$LAST_ARG" | "$TAIL_BIN" -n1)
|
|
|
+ "$TAIL_BIN" "$@" | "$BAT_BIN" -Pp --file-name="$LAST_FILE"
|
|
|
+ else
|
|
|
+ "$TAIL_BIN" "$@"
|
|
|
+ fi
|
|
|
+ }
|
|
|
+ fi
|
|
|
+
|
|
|
# monkeypatch head to use bat to colorize things
|
|
|
if [ "${HEAD_BIN:=$(get_bin head)}" ]; then
|
|
|
head(){
|
|
|
- local N=10
|
|
|
- case "$1" in
|
|
|
- -c*|--bytes*)
|
|
|
- "$HEAD_BIN" "$@"
|
|
|
- ;;
|
|
|
- *)
|
|
|
- if [[ "$1" =~ ^-(n|-lines)$ ]] && N=$(as_num "$2"); then
|
|
|
- shift 2
|
|
|
- elif [[ "$1" =~ ^-(n=?|-lines=) ]] && N=$(as_num "${1##*[^0-9]}"); then
|
|
|
- shift 1
|
|
|
- fi
|
|
|
- "$BAT_BIN" --line-range=":$N" "$@"
|
|
|
- esac
|
|
|
+ LAST_ARG=${@[-1]}
|
|
|
+ if [ "$LAST_ARG" ]; then
|
|
|
+ LAST_FILE=$(ls -1 "$LAST_ARG" | "$TAIL_BIN" -n1)
|
|
|
+ "$HEAD_BIN" "$@" | "$BAT_BIN" -Pp --file-name="$LAST_FILE"
|
|
|
+ else
|
|
|
+ "$HEAD_BIN" "$@"
|
|
|
+ fi
|
|
|
}
|
|
|
fi
|
|
|
|