autoload -U compinit compinit -C HISTFILE=~/.zhistory SAVEHIST=1000 setopt append_history setopt hist_ignore_space setopt share_history setopt auto_menu # show completion menu on successive tab press setopt complete_in_word setopt always_to_end zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' autoload -U select-word-style autoload -U colors && colors autoload -Uz vcs_info add-zsh-hook setopt prompt_subst add-zsh-hook precmd vcs_info # Enable checking for (un)staged changes, enabling use of %u and %c zstyle ':vcs_info:*' check-for-changes true # Set custom strings for an unstaged vcs repo changes (*) and staged changes (+) zstyle ':vcs_info:*' unstagedstr "%F{yellow}●%f" zstyle ':vcs_info:*' stagedstr "%F{green}●%f" # Set the format of the Git information for vcs_info zstyle ':vcs_info:git:*' formats " (%b%c%u)" zstyle ':vcs_info:git:*' actionformats " (%b|%a%u%c)" # Print timing statistics for everything which takes longer than 5 seconds of # user + system time ('sleep 6' does not work because of 0% user/system time!). REPORTTIME=5 # Explicitly select Emacs line editing mode (independent of zsh’s best guess # based on EDITOR/VISUAL). bindkey -e PROMPT='%K{cyan}%F{black}%m%k%f %~%F{red}${vcs_info_msg_0_}%f %# ' # For tramp (emacs). if [ "$TERM" = "dumb" ]; then unset PROMPT PS1='$ ' unsetopt zle fi