[[ ! -d "$ZDOTDIR/completion" ]] || fpath=("$ZDOTDIR/completion" $fpath) autoload -Uz compinit bashcompinit compinit -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION" bashcompinit zstyle ':completion:*' auto-description 'specify: %d' zstyle ':completion:*' completer _expand _complete _correct _approximate zstyle ':completion:*' format 'Completing %d' zstyle ':completion:*' group-name '' zstyle ':completion:*' menu select=2 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' list-colors '' zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' \ 'm:{-_a-zA-Z}={_-A-Za-z}' \ 'r:|[._-]=* r:|=* l:|=*' zstyle ':completion:*' menu select=long zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s zstyle ':completion:*' use-compctl false zstyle ':completion:*' verbose true zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' zstyle ':completion:*' menu select zstyle -e ':completion:*:users' users 'local user; getent passwd | while IFS=: read -rA user; do (( user[3] >= 1000 || user[3] == 0 )) && reply+=($user[1]); done' # Include hidden files in completion. _comp_options+=(globdots) # Don't complete the same argument twice for these programs. # Taken from http://leahneukirchen.org/dotfiles/.zshrc zstyle ':completion:*:(diff|meld|trash):*' ignore-line yes # Use completion of commands for their wrapper functions compdef ls-show-hidden=ls compdef nvim-man=man # Reuse other completion functions # NOTE: Show completion functions for current context: # h # Generate completion debug trace: # ? # Define completion functions instead of directly linking (e.g. `compdef # _git-checkout git-checkout-worktree`) so that the completion works for the # shell functions **as well** as for git aliases (i.e. `git-checkout-worktree` # and `git cow`). _git-checkout-worktree() { _git-checkout } _git-commit-last-msg() { _git-commit } _git-https-and-ssh() { __git_remotes } compdef _git-log glog # Run git's completion once to avoid a `command not found` error when using the # completion functions on other programs without having completed something for # git before in the same session. _git &>/dev/null || true # Do not sort completion list zstyle ":completion:*:git-checkout:*" sort false zstyle ":completion:*:git-rebase:*" sort false zstyle ":completion:*:git-show:*" sort false zstyle ":completion:*:git-signoff:*" sort false