From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: zsh-workers-request@euclid.skiles.gatech.edu Received: from euclid.skiles.gatech.edu (list@euclid.skiles.gatech.edu [130.207.146.50]) by coral.primenet.com.au (8.7.6/8.7.3) with ESMTP id KAA04595 for ; Fri, 15 Nov 1996 10:54:55 +1100 (EST) Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id SAA10105; Thu, 14 Nov 1996 18:49:01 -0500 (EST) Resent-Date: Thu, 14 Nov 1996 18:25:10 -0500 (EST) Message-Id: <199611142318.SAA02669@sassy.aa.ans.net> From: Matthew Braun Date: Thu, 14 Nov 1996 18:18:15 -0500 X-Mailer: Mail User's Shell (7.2.5 10/14/92) To: schaefer@nbn.com, zsh-users@math.gatech.edu Subject: Re: tcsh's autocorrect functionality wanted Resent-Message-ID: <"BszLv1.0.jI2.LfwYo"@euclid> Resent-From: zsh-users@math.gatech.edu X-Mailing-List: archive/latest/503 X-Loop: zsh-users@math.gatech.edu X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu "Bart Schaefer" 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 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.