| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # set up
- if [ ! -d "${HOME}/.zsh/completion" ]; then
- mkdir -p "${HOME}/.zsh/completion"
- echo 'Downloading completions'
- curl -L https://raw.githubusercontent.com/docker/compose/1.23.1/contrib/completion/zsh/_docker-compose > ${HOME}/.zsh/completion/_docker-compose
- curl -L https://raw.githubusercontent.com/docker/cli/18.09/contrib/completion/zsh/_docker > ${HOME}/.zsh/completion/_docker
- fi
- fpath=(${HOME}/.zsh/completion $fpath)
- # make autocompletion faster by caching
- autoload -Uz compinit
- compinit -d "$HOME/.zsh/cache/zcompdump"
- zstyle ':completion:*' use-cache on
- zstyle ':completion:*' cache-path $HOME/.zsh/cache
- # use menu
- zstyle ':completion:*' menu select
- # enable approximate autocompletion
- zstyle ':completion:*' completer _complete _match _approximate
- zstyle ':completion:*:match:*' original only
- # zstyle ':completion:*:approximate:*' max-errors 1 numeric
- # zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3)) numeric)'
- # Smart matching of dashed values, e.g. f-b matching foo-bar
- zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*'
- # Group results by category
- zstyle ':completion:*' group-name ''
- # Keep directories and files separated
- zstyle ':completion:*' list-dirs-first true
- # Don't try parent path completion if the directories exist
- zstyle ':completion:*' accept-exact-dirs true
- zstyle ':completion:*' squeeze-slashes true
- # Always use menu selection for `cd -`
- zstyle ':completion:*:*:cd:*:directory-stack' force-list always
- zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
- # ignore completion functions for commands you don't have
- zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec)|TRAP*)'
- # Prettier completion for processes
- zstyle ':completion:*:*:*:*:processes' force-list always
- zstyle ':completion:*:*:*:*:processes' menu yes select
- zstyle ':completion:*:*:*:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
- zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,args -w -w"
- zstyle ':filter-select:highlight' matched fg=red
- zstyle ':filter-select' max-lines 10
- zstyle ':filter-select' rotate-list yes
- zstyle ':filter-select' case-insensitive yes # enable case-insensitive search
- # Use ls-colors for path completions
- function _set-list-colors() {
- zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
- unfunction _set-list-colors
- }
- sched 0 _set-list-colors # deferred since LC_COLORS might not be available yet
|