# `.zshrc' is sourced in interactive shells. It should contain # commands to set up aliases, functions, options, key bindings, etc. autoload -U colors && colors # Options setopt auto_cd # History setopt EXTENDED_HISTORY setopt SHARE_HISTORY setopt APPEND_HISTORY # setopt INC_APPEND_HISTORY # unexpected last result with multiple open terminals setopt HIST_REDUCE_BLANKS HISTSIZE=10000 SAVEHIST=10000 HISTFILE=$XDG_CACHE_HOME/zshhistory # Corrections setopt CORRECT setopt CORRECT_ALL # Completion fpath=($ZDOTDIR/completions $fpath) autoload -U compinit zstyle ':completion:*' menu select zmodload zsh/complist compinit _comp_options+=(globdots) # include hidden files # Keybindings bindkey -e # force Emacs state, even with $EDITOR=nvim bindkey "^[[1;5C" forward-word bindkey "^[[1;5D" backward-word bindkey -s '^L' '^Uclear^M' # clear using alias # edit line in editor w/ ctrl-k (from Luke Smith's .zshrc) autoload edit-command-line; zle -N edit-command-line bindkey '^k' edit-command-line # Aliases [ -f "$E_SCRIPTS_DIR/aliases.sh" ] && source "$E_SCRIPTS_DIR/aliases.sh" # zsh-specific aliases # clear zsh history: Adapted from Novimatrem: https://gitlab.com/Novimatrem/clear-bash-history alias czh="echo 'Fully clearing history, then exiting...' && cat /dev/null > $XDG_CACHE_HOME/zshhistory && history -p && exit" # Prompt PROMPT="%K{238}%F{104}%n%f%k%K{238}%F{104}@%f%k%K{238}%F{104}%m%f%k%K{238}%F{104}:%2~> %f%k" # Plugins! I try to keep as few as possible # Cloned from bootstrap file, run `git -C .config/zsh/autocomplete pull' to update source $ZDOTDIR/autocomplete/zsh-autocomplete.plugin.zsh zstyle ':autocomplete:*' min-input 1 zstyle ':autocomplete:*' min-delay 0.25 autoload -Uz vcs_info precmd_vcs_info() { vcs_info } precmd_functions+=( precmd_vcs_info ) setopt prompt_subst RPROMPT=\$vcs_info_msg_0_ zstyle ':vcs_info:git:*' formats '%F{240}(%b)%r%f' zstyle ':vcs_info:*' enable git # This must be placed at the end source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh