mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-20 05:53:52 +01:00
38 lines
798 B
Plaintext
38 lines
798 B
Plaintext
#defkeycomp complete-word \C-xc
|
|
|
|
# Function to correct a filename. Can be used as a completion widget,
|
|
# or as a function in its own right, in which case it will print the
|
|
# corrected filename to standard output.
|
|
#
|
|
# You can adapt max_approx to the maximum number of mistakes
|
|
# which are allowed in total.
|
|
|
|
emulate -LR zsh
|
|
setopt extendedglob
|
|
|
|
local file="$PREFIX$SUFFIX" trylist
|
|
integer approx max_approx=6
|
|
|
|
[[ -z $WIDGET ]] && file=$1
|
|
|
|
if [[ -e "$file" ]]; then
|
|
if [[ -n $WIDGET ]]; then
|
|
compadd "$file"
|
|
else
|
|
print "$file"
|
|
fi
|
|
return
|
|
fi
|
|
|
|
for (( approx = 1; approx <= max_approx; approx++ )); do
|
|
trylist=( (#a$approx)"$file"(N) )
|
|
(( $#trylist )) && break
|
|
done
|
|
(( $#trylist )) || return 1
|
|
|
|
if [[ -n $WIDGET ]]; then
|
|
compadd -U "${trylist[@]}"
|
|
else
|
|
print "${trylist[@]}"
|
|
fi
|