123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #
- # Completion enhancements
- #
- #
- # initialization
- #
- # if it's a dumb terminal, return.
- if [[ ${TERM} == 'dumb' ]]; then
- return 1
- fi
- # add the completions to the fpath
- fpath=(${0:h}/external/src ${fpath})
- # load and initialize the completion system
- autoload -Uz compinit && compinit -C -d "${ZDOTDIR:-${HOME}}/${zcompdump_file:-.zcompdump}"
- #
- # zsh options
- #
- # If a completion is performed with the cursor within a word, and a full completion is inserted,
- # the cursor is moved to the end of the word
- setopt ALWAYS_TO_END
- # Perform a path search even on command names with slashes in them.
- setopt PATH_DIRS
- # Make globbing (filename generation) not sensitive to case.
- unsetopt CASE_GLOB
- # Don't beep on an ambiguous completion.
- unsetopt LIST_BEEP
- #
- # completion module options
- #
- # group matches and describe.
- zstyle ':completion:*:*:*:*:*' menu select
- zstyle ':completion:*:matches' group yes
- zstyle ':completion:*:options' description yes
- zstyle ':completion:*:options' auto-description '%d'
- zstyle ':completion:*:corrections' format '%F{green}-- %d (errors: %e) --%f'
- zstyle ':completion:*:descriptions' format '%F{yellow}-- %d --%f'
- zstyle ':completion:*:messages' format '%F{purple}-- %d --%f'
- zstyle ':completion:*:warnings' format '%F{red}-- no matches found --%f'
- zstyle ':completion:*' format '%F{yellow}-- %d --%f'
- zstyle ':completion:*' group-name ''
- zstyle ':completion:*' verbose yes
- zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' '+r:|?=**'
- # directories
- if (( ! ${+LS_COLORS} )); then
- # Locally use same LS_COLORS definition from utility module, in case it was not set
- local LS_COLORS='di=1;34:ln=35:so=32:pi=33:ex=31:bd=1;36:cd=1;33:su=30;41:sg=30;46:tw=30;42:ow=30;43'
- fi
- zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
- zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
- zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
- zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'expand'
- zstyle ':completion:*' squeeze-slashes true
- # enable caching
- zstyle ':completion::complete:*' use-cache on
- zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-${HOME}}/.zcompcache"
- # ignore useless commands and functions
- zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec)|prompt_*)'
- # completion sorting
- zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
- # Man
- zstyle ':completion:*:manuals' separate-sections true
- zstyle ':completion:*:manuals.(^1*)' insert-sections true
- # history
- zstyle ':completion:*:history-words' stop yes
- zstyle ':completion:*:history-words' remove-all-dups yes
- zstyle ':completion:*:history-words' list false
- zstyle ':completion:*:history-words' menu yes
- # ignore multiple entries.
- zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
- zstyle ':completion:*:rm:*' file-patterns '*:all-files'
- # If the _my_hosts function is defined, it will be called to add the ssh hosts
- # completion, otherwise _ssh_hosts will fall through and read the ~/.ssh/config
- zstyle -e ':completion:*:*:ssh:*:my-accounts' users-hosts \
- '[[ -f ${HOME}/.ssh/config && ${key} == hosts ]] && key=my_hosts reply=()'
|