Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: tcsh's autocorrect functionality wanted
- X-seq: zsh-users 502
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: Matthew Braun <matthew@xxxxxxx>, zsh-users@xxxxxxxxxxxxxxx
- Subject: Re: tcsh's autocorrect functionality wanted
- Date: Thu, 14 Nov 1996 00:23:14 -0800
- In-reply-to: Matthew Braun <matthew@xxxxxxx> "tcsh's autocorrect functionality wanted" (Nov 11, 9:24pm)
- References: <199611120224.VAA24020@xxxxxxxxxxxxxxxx>
- Reply-to: schaefer@xxxxxxx
On Nov 11, 9:24pm, Matthew Braun wrote:
} Subject: tcsh's autocorrect functionality wanted
}
} I would like to get this tcsh functionality in zsh:
}
} autocorrect (+)
} If set, the spell-word editor command is invoked
} automatically before each completion attempt.
That would be pretty trivial to add, I think, except for the bugs in
spell-word described below.
} What I was thinking:
}
} function spell-expand-or-complete-prefix {
} spell-word
} expand-or-complete-prefix
} }
} bindkey ^i spell-expand-or-complete-prefix
The way you do that sort of thing is like this:
# bindkey '\es' spell-word # already the default
bindkey '\C-x\C-i' expand-or-complete-prefix
bindkey -s '\t' '\es\C-x\C-i'
However, spell-word isn't clever. It doesn't deal properly with a path
beginning with a tilde (~) -- I consider this to be a bug, because this
IS handled by `setopt correctall` -- and it does not know how to fix up
the path prefix when the suffix is "too far" from the correct spelling.
Finally, spell-word ignores `setopt completeinword` and always behaves
as if `setopt awaystoend`, so the cursor ends up in what may be a very
wrong place after spelling is completed.
So for now you can try the binding above; or you can look at "multicomp"
in the Functions/ directory of the zsh distribution, write yourself a
little program that does spell checking, and replace `reply=(${~reply})'
in that function with `reply=( $(spellcheck ${~reply}) )'. For a basis
of the spell-checking program, you can cannibalize Src/utils.c for the
functions spname(), mindist(), and spdist().
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.nbn.com/people/lantern
Messages sorted by:
Reverse Date,
Date,
Thread,
Author