diff --git a/zsh/config.zsh b/zsh/config.zsh index 7402984b..43498aa8 100644 --- a/zsh/config.zsh +++ b/zsh/config.zsh @@ -1,3 +1,33 @@ +autoload -U zmv +autoload -U url-quote-magic +zle -N self-insert url-quote-magic + +# +# General +# + +# Treat these characters as part of a word. +WORDCHARS='*?_-.[]~&;!#$%^(){}<>' + +setopt BRACE_CCL # Allow brace character class list expansion. +setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents) + # with the base character. +setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. +unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed. + +setopt NOBEEP # Hush now, quiet now. + +# +# Jobs +# + +setopt LONG_LIST_JOBS # List jobs in the long format by default. +setopt AUTO_RESUME # Attempt to resume existing job before creating a new process. +setopt NOTIFY # Report status of background jobs immediately. +unsetopt BG_NICE # Don't run all background jobs at a lower priority. +unsetopt HUP # Don't kill jobs on shell exit. +unsetopt CHECK_JOBS # Don't report on jobs when shell exit. + # Allow command line editing in an external editor. autoload -Uz edit-command-line zle -N edit-command-line @@ -8,18 +38,41 @@ unsetopt CORRECT_ALL setopt append_history share_history extended_history setopt histignorealldups histignorespace setopt extended_glob -setopt longlistjobs setopt nonomatch -setopt notify setopt hash_list_all -# Don't send SIGHUP to background processes when the shell exits. -setopt nohup +# +# History +# -setopt auto_cd -setopt auto_pushd -setopt pushd_ignore_dups -setopt nobeep -setopt noglobdots -setopt noshwordsplit -setopt unset +HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" +HISTSIZE=10000 # Max events to store in internal history. +SAVEHIST=10000 # Max events to store in history file. + +unsetopt BANG_HIST # Don't treat '!' 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 a duplicate event first when trimming history. +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_IGNORE_SPACE # Do not record an event starting with a space. +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_BEEP # Beep when accessing non-existent history. + +# +# Directories +# + +setopt AUTO_CD # Auto changes to a directory without typing cd. +setopt AUTO_PUSHD # Push the old directory onto the stack on cd. +setopt PUSHD_IGNORE_DUPS # Do not store duplicates in the stack. +setopt PUSHD_SILENT # Do not print the directory stack after pushd or popd. +setopt PUSHD_TO_HOME # Push to home directory when no argument is given. +setopt CDABLE_VARS # Change directory to a path stored in a variable. +setopt AUTO_NAME_DIRS # Auto add variable-stored paths to ~ list. +setopt MULTIOS # Write to multiple descriptors. +setopt EXTENDED_GLOB # Use extended globbing syntax. +unsetopt GLOB_DOTS