#!/usr/bin/env zsh unsetopt BEEP setopt AUTO_CD setopt GLOB_DOTS setopt NOMATCH setopt MENU_COMPLETE setopt EXTENDED_GLOB setopt INTERACTIVE_COMMENTS setopt APPEND_HISTORY setopt PUSHD_IGNORE_DUPS setopt BANG_HIST # Treat the '!' character specially during expansion. 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 SHARE_HISTORY # Share history between all sessions. setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. setopt HIST_FIND_NO_DUPS # Do not display a line previously found. setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. setopt HIST_VERIFY # Don't execute immediately upon history expansion. HISTFILE="${ZDOTDIR:-$HOME}/.zsh_history" HISTSIZE=5000000 SAVEHIST=5000000 zstyle ':fzf-tab:complete:cd:*' fzf-preview 'lsd -1 --color=always --icon=always $realpath' # Starship counts every entry in jobstates, including completed jobs that zsh # hasn't reaped yet. Run jobs before Starship's precmd hook so parallel Zinit # updates don't leave a stale job badge in the prompt. autoload -Uz add-zsh-hook _zinit_reap_done_jobs() { jobs -p >/dev/null 2>&1 } add-zsh-hook -d precmd _zinit_reap_done_jobs 2>/dev/null || true precmd_functions=( _zinit_reap_done_jobs ${precmd_functions:#_zinit_reap_done_jobs} )