Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: tcsh's autocorrect functionality wanted
- X-seq: zsh-users 503
- From: Matthew Braun <matthew@xxxxxxx>
- To: schaefer@xxxxxxx, zsh-users@xxxxxxxxxxxxxxx
- Subject: Re: tcsh's autocorrect functionality wanted
- Date: Thu, 14 Nov 1996 18:18:15 -0500
"Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx> on Thu, 14 Nov 1996 0:23 writes:
> On Nov 11, 9:24pm, Matthew Braun wrote:
> } 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.
Trivial for someone who already knows the code. Any maintainers out
there listening? Please add this. Thanks!
> 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'
That's cool, thanks!
> 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.
Zsh masters, can these things related to spell-word be put on the TODO
list? If there is such a list that is, as I don't see one in the
distribution tree.
It would be nice if the autocorrect that uses the spell-word stuff would
cover spell checking each part of the path for filenames, so it would
cover this example (assumes there are no other files that start with
pas* in the /etc directory):
zsh$ cat /ect/pas<tab>
expands to:
zsh$ cat /etc/passwd
> 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().
This seems like it would be slow, and given the number of times I hit
"tab" any slowness would likely be very annoying! ;-)
Bart, mind giving me some examples of how completeinword and awaystoend
work? I tried setting these and hitting tab in a few instances, but it
didn't seem to change the behavior. I can see where it would be nice if
COMPLETE_IN_WORD worked for spell-word, but I don't see it actually
affecting anything right now.
Thanks,
Matthew.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author