#-------------------- # Completion stuff #-------------------- autoload -Uz compinit compinit # correct 7etc/foo to /etc/foo # if anyone has a working solution for /etc7foo please contact me function _7slash { if [[ $words[CURRENT] = 7(#b)(*)(#e) ]] then compadd -U -X 'Correct leading 7 to /' -f /$match[1] fi } zstyle :compinstall filename '$HOME/.zshrc' # cache results because yaourt is slow zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path $HOME/.zsh/cache zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' completer _complete _match _approximate _7slash zstyle ':completion:*:match:*' original only # allow more mistypes if longer command zstyle -e ':completion:*:approximate:*' \ max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)' # ignore completion for commands we don't have zstyle ':completion:*:functions' ignored-patterns '_*' # show menu when tabbing zstyle ':completion:*' menu yes select # better completion for kill zstyle ':completion:*:*:kill:*' command 'ps -u$USER -o pid,%cpu,tty,cputime,cmd' # bugged with zsh 4.3.10 for whatever reason #zstyle ':completion:*' file-sort time zstyle ':completion:*' file-sort name # remove / after dirnames # e.g. ls foo/ -> ls foo #zstyle ':completion:*' squeeze-slashes true zstyle ':completion:*' squeeze-slashes false # if in foo/bar don't show bar when cd ../ zstyle ':completion:*:cd:*' ignore-parents parent pwd # ignore case when completing zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' # make some stuff look better zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}' zstyle ':completion:*:warnings' format $'%{\e[0;31m%}No matches for:%{\e[0m%} %d' # vim: set ft=zsh: