# History Config setopt interactivecomments setopt EXTENDED_HISTORY setopt HIST_EXPIRE_DUPS_FIRST setopt HIST_IGNORE_DUPS setopt HIST_IGNORE_ALL_DUPS setopt HIST_IGNORE_SPACE setopt HIST_FIND_NO_DUPS setopt HIST_SAVE_NO_DUPS setopt HIST_BEEP setopt INC_APPEND_HISTORY setopt HIST_FCNTL_LOCK setopt SHARE_HISTORY setopt AUTO_CD # History file configuration - per host HISTORY_IGNORE='(*.git/hooks*)' LESSHISTFILE="-" HISTFILE="$ZDOTDIR/zsh_history_$HOST" HISTFILESIZE=100000 HISTSIZE=100000 SAVEHIST=100000 # Ensure history file exists and has proper permissions if [[ ! -f "$HISTFILE" ]]; then touch "$HISTFILE" chmod 644 "$HISTFILE" # More permissive permissions fi # Additional history safeguards # Backup history on each session start (only if file is significantly large) if [[ -f "$HISTFILE" && -w "$HISTFILE" ]]; then # Create backup if history file is large enough (> 10KB) to avoid frequent small backups if [[ $(stat -f%z "$HISTFILE" 2>/dev/null || stat -c%s "$HISTFILE" 2>/dev/null) -gt 10240 ]]; then cp "$HISTFILE" "${HISTFILE}.bak" 2>/dev/null || true fi fi # Minimal prompt configuration MNML_INFOLN=() MNML_PROMPT=(mnml_ssh mnml_status 'mnml_cwd 2 0' mnml_git mnml_keymap ) MNML_RPROMPT=() MNML_NORMAL_CHAR="◉"