compsys: Matchers


Fuzzy matching of completions for when you mistype them:

zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric

And if you want the number of errors allowed by _approximate to increase with the length of what you have typed so far:

zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'

Using _expand before _complete

I use the _expand completer before _complete in my main completer but it is nice to have _match and _all_matches available on other key bindings:

zstyle ':completion:all-matches::::' completer _all_matches _complete
zstyle ':completion:all-matches:*' old-matches true
zstyle ':completion:all-matches:*' insert true
zstyle ':completion:match-word::::' completer _all_matches _match _ignored
zstyle ':completion:match-word:*' insert-unambiguous true
zstyle ':completion:match-word:*' match-original both
zle -C all-matches complete-word _generic
zle -C match-word complete-word _generic
bindkey '^Xx' all-matches
bindkey '\e*' match-word
examples/compsys/matchers.txt · Last modified: 2010/01/05 09:20 (external edit)