# Should be called before compinit zmodload zsh/complist autoload -U compinit; compinit _comp_options+=(globdots) # With hidden files # +---------+ # | Options | # +---------+ # setopt GLOB_COMPLETE # Show autocompletion menu with globs setopt MENU_COMPLETE # Automatically highlight first element of completion menu setopt AUTO_LIST # Automatically list choices on ambiguous completion. setopt COMPLETE_IN_WORD # Complete from both ends of a word. # +---------+ # | zstyles | # +---------+ # Ztyle pattern # :completion::::: # Define completers zstyle ':completion:*' completer _extensions _complete _approximate # Use cache for commands using cache zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path "$HOME/.cache/zsh/.zcompcache" # Complete the alias when _expand_alias is used as a function zstyle ':completion:*' complete true # Allow you to select in a menu zstyle ':completion:*' menu select # Autocomplete options for cd instead of directory stack zstyle ':completion:*' complete-options true zstyle ':completion:*' file-sort modification zstyle ':completion:*:*:*:*:corrections' format '%F{yellow}!- %d (errors: %e) -!%f' zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D %d --%f' zstyle ':completion:*:*:*:*:messages' format ' %F{purple} -- %d --%f' zstyle ':completion:*:*:*:*:warnings' format ' %F{red}-- no matches found --%f' # zstyle ':completion:*:default' list-prompt '%S%M matches%s' # Colors for files and directory zstyle ':completion:*:*:*:*:default' list-colors ${(s.:.)LS_COLORS} # Only display some tags for the command cd zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories # zstyle ':completion:*:complete:git:argument-1:' tag-order !aliases # Required for completion to be in good groups (named after the tags) zstyle ':completion:*' group-name '' zstyle ':completion:*:*:-command-:*:*' group-order aliases builtins functions commands # See ZSHCOMPWID "completion matching control" zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' zstyle ':completion:*' keep-prefix true zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'