From: martin f. krafft Date: Mon, 5 May 2008 11:13:35 +0000 (+0100) Subject: some work on compsys, far from having understood it X-Git-Url: https://git.madduck.net/etc/zsh.git/commitdiff_plain/f98cb7bf41283653ccd5d575eb13d2695d0da97c?ds=sidebyside some work on compsys, far from having understood it --- diff --git a/.zsh/zshrc/00_TODO b/.zsh/zshrc/00_TODO index 577cd67..aa65548 100644 --- a/.zsh/zshrc/00_TODO +++ b/.zsh/zshrc/00_TODO @@ -14,9 +14,6 @@ ldir() { eval $1="$PWD" ; : ~$1 } alias Q='exec zsh' alias ozsh='ZDOTDIR=$HOME/.etc/zsh exec zsh' -# correct all arguments -setopt correctall - # do not clobber files with > setopt noclobber @@ -26,9 +23,6 @@ setopt autopushd pushdminus pushdsilent pushdtohome # brace expansion setopt braceccl -# commands that take commands as arguments -compctl -c man nohup strace gdb - # automatically remove duplicates from these arrays typeset -gU path cdpath fpath manpath diff --git a/.zsh/zshrc/90_compctl b/.zsh/zshrc/90_compctl deleted file mode 100644 index cfdbed8..0000000 --- a/.zsh/zshrc/90_compctl +++ /dev/null @@ -1,14 +0,0 @@ -# zshrc/90_compctl -# -# Configures the completions system -# -# Copyright © 1994–2008 martin f. krafft -# Released under the terms of the Artistic Licence 2.0 -# -# Source repository: http://git.madduck.net/v/etc/zsh.git -# - -# make tab completion work the way i like it -setopt autolist automenu recexact alwaystoend - -# vim:ft=zsh diff --git a/.zsh/zshrc/90_compsys b/.zsh/zshrc/90_compsys new file mode 100644 index 0000000..4980eaa --- /dev/null +++ b/.zsh/zshrc/90_compsys @@ -0,0 +1,96 @@ +# zshrc/90_compctl +# +# Configures the completions system +# +# Copyright © 1994–2008 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: http://git.madduck.net/v/etc/zsh.git +# + +# 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 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 + +# initialise the completion system +autoload -U compinit +compinit -d $VAR/zsh/compdump + +# cache results +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path $ZVAR/compcache + +#zstyle ':completion:*' completer _list _expand _complete _ignored _match _correct _approximate _prefix +zstyle ':completion:*' completer _complete _ignored _match _approximate + +# use colours in completion lists and menus +zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} + +# ignore working and backup copies +zstyle ':completion:*:(all-|)files' ignored-patterns \ + '*.bk' '*.bak' '*.old' '*~' '.*.sw?' + +# 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 ':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"' +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 + +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 '' + +# vim:ft=zsh