# zshrc/20_compsys # # Configures the completions system # # Copyright © 1994–2017 martin f. krafft # Released under the terms of the Artistic Licence 2.0 # # Source repository: http://git.madduck.net/v/etc/zsh.git # zstyle :compinstall filename '$ZDOTDIR/zshrc/20_compsys' # automatically list choices on an ambiguous completion setopt auto_list # use menu after the second completion request setopt auto_menu # recognise exact matches even if they're ambiguous setopt rec_exact # move cursor to end of word being completed setopt always_to_end # correct the command if mistyped setopt correct # correct all arguments, not just the command #setopt correctall # be magic about adding/removing final characters on tab completion setopt auto_param_keys auto_param_slash auto_remove_slash # load fancy completion list and menu handler zmodload zsh/complist # initialise the completion system autoload -U compinit compinit -d $ZVARDIR/comp-$HOST # cache results zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path $ZVARDIR/compcache #zstyle ':completion:*' completer _list _expand _complete _ignored _match _correct _approximate _prefix zstyle ':completion:*' completer _complete _ignored _match _correct _approximate # allow cursor-key navigation through completion set zstyle ':completion:*:*:*:*' menu select # use colours in completion lists and menus zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} # ignore working and backup copies, and compiled objects zstyle ':completion:*:(all-|)files' ignored-patterns \ '*.bk' '*.bak' '*.old' '*~' '.*.sw?' '*.o' '*.pyc' zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3)) not-numeric )' zstyle -e ':completion:*:correct:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/2)) numeric )' #zstyle ':completion:*:correct:::' max-errors 1 not-numeric #zstyle ':completion:*:approximate:::' max-errors 2 numeric #zstyle ':completion:*' list-suffixes true #zstyle ':completion:*' match-original both #zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' #zstyle ':completion:*:match:*' original only #zstyle ':completion:*' original true #zstyle ':completion:*' squeeze-slashes true # functions which start with _ are internal and ignored zstyle ':completion:*:functions' ignored-patterns '_*' # do not offer files already specified on the line zstyle ':completion:*:rm:*' ignore-line yes #zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters #zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-} # ignore current directory when completing in ../ #zstyle ':completion:*:cd:*' ignore-parents parent pwd zstyle ':completion:*' ignore-parents parent pwd # http://xana.scru.org/2005/08/20#ignorelatexjunk zstyle -e ':completion:*:*:vim#:*:*' ignored-patterns \ 'texfiles=$(echo ${PREFIX}*.tex); [[ -n "$texfiles" ]] && reply=(*.(aux|dvi|log|ps|pdf|bbl|toc|lot|lof|latexmain)) || reply=()' # http://madism.org/~madcoder/dotfiles/zsh/40_completion zstyle ':completion:*:processes' command 'ps -au$USER -o pid,time,cmd|grep -v "ps -au$USER -o pid,time,cmd"' # commands that take commands as arguments compdef _precommand gdb compdef _precommand nohup compdef _precommand strace zstyle ':completion:*' verbose yes zstyle ':completion:*:descriptions' format '%B%d%b' zstyle ':completion:*:messages' format '%d' zstyle ':completion:*:warnings' format 'no matches for: %d' zstyle ':completion:*' group-name '' # #527301 zstyle :completion::complete:xmms2:\*:values list-grouped false zstyle :completion::complete:xmms2:\*:values sort false # vim:ft=zsh