-# zshrc/90_compctl
+# zshrc/20_compsys
#
# Configures the completions system
#
# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
# Released under the terms of the Artistic Licence 2.0
#
-# Source repository: http://git.madduck.net/v/etc/zsh.git
+# Source repository: git://git.madduck.net/etc/zsh.git
#
+zstyle :compinstall filename '$ZDOTDIR/zshrc/20_compsys'
+
# automatically list choices on an ambiguous completion
setopt auto_list
# 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 $VAR/zsh/compdump
+compinit -d $ZVARDIR/comp-$HOST
# cache results
zstyle ':completion:*' use-cache on
-zstyle ':completion:*' cache-path $ZVAR/compcache
+zstyle ':completion:*' cache-path $ZVARDIR/compcache
#zstyle ':completion:*' completer _list _expand _complete _ignored _match _correct _approximate _prefix
-zstyle ':completion:*' completer _complete _ignored _match _approximate
+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
+# ignore working and backup copies, and compiled objects
zstyle ':completion:*:(all-|)files' ignored-patterns \
- '*.bk' '*.bak' '*.old' '*~' '.*.sw?'
+ '*.bk' '*.bak' '*.old' '*~' '.*.sw?' '*.o' '*.pyc'
-# populate hosts completion with SSH's known_hosts
-local _myhosts;
-_myhosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*})
-zstyle ':completion:*' hosts $_myhosts;
-
-zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3)) numeric )'
+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
# 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"'
-zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)[ 0-9:]#([^ ]#)*=01;30=01;31=01;38'
-
-zstyle :compinstall filename '$ETC/zsh/compsys'
# commands that take commands as arguments
compdef _precommand gdb
compdef _precommand nohup
compdef _precommand strace
+# commands that take proceses as arguments
+
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