From: "Andrej Borsenkow" <borsenkow.msk@sni.de>
To: "Sven Wischnowsky" <wischnow@informatik.hu-berlin.de>,
<zsh-workers@sunsite.auc.dk>
Subject: pws-23: RE: _match and auto menu with multipath again
Date: Mon, 21 Jun 1999 11:53:25 +0400 [thread overview]
Message-ID: <000501bebbbb$24061750$21c9ca95@mow.siemens.ru> (raw)
In-Reply-To: <199906170837.KAA04058@beta.informatik.hu-berlin.de>
>
> Does any of these do what you want? Note that setting `match_insert=unambig'
> may sometimes remove a short pattern if enough components further up
> the path were expanded. This is a bit ugly, yes, but I can't think of
> an easy way to find out where that precious pattern is which one might
> want to have preserved.
>
Thinking more and more about it: what is the reason for _match to automatically
start menu completion at all (apart from compatibility with old zsh, that can be
preserved with configuration key). Think about it:
1. We complete /u/l/s/z/f -> /usr/local/share/zsh/functions
This is actually the same as if we completed /u*/l*/s*/z*/f* - and is
interpreted and implemented this way. What happens is, that unambiguous prefix
is replaced and first ambiguous part is replaced with the largest common prefix;
remaining parts retain there (implicit) glob pattern. That is, we get something
like
/usr/local/s/z*/f*
share status ...
how does it differ from
2. We complete /u/l/s/z/f*s -> /usr/local/share/zsh/functions ?
In no way, except, that we know better some patterns (more than only initial
character) and thus are able to reduce possible matches. Note, that patterns are
often longer than most common prefix - typing /u/l/lib*X* will typically leave
me with just 'lib' prefix.
So, I think, that either match_insert should be changed to always insert prefix
(irrespectively of length) or we need additional config key to force it.
And about cutrrent behaviour:
compconf correct_accept='2n'
compconf match_original='yes'
compconf completer='_complete:_match'
compconf dumpfile='/home/bor/.zcompdump'
compconf path_cursor='yes'
compconf match_insert='unambig'
compconf correct_prompt='correct to:'
bor@itsrm2:~%> l /u/l/lib*X*<TAB>
bor@itsrm2:~%> l /usr/lib/lib*X*
lib/ lib64s/ ^ cursor here
That is correct and is what I expected. But simply pressing TAB once more
results in
bor@itsrm2:~%> l /usr/lib/libX11.a
lib/ lib64s/
While if I press any cursor movement key and then TAB I get
bor@itsrm2:~%> l /usr/lib/lib*X*
lib/ lib64s/ ^ cursor here (after cursor-right)
bor@itsrm2:~%> l /usr/lib/libX11.a
libX11.a@ libXaw.so.6.1@ libXmSni.so.3.0@ libXpm.so.3.4@
libX11.so@ libXdUtils.so.3.1@ libXmu.a@ libXpm.so.4.6@
.................... (long list),
or if I explicitly enter '6'
bor@itsrm2:~%> l /usr/lib/lib*X*
lib/ lib64s/ ^ cursor here
bor@itsrm2:~%> l /usr/lib6/lib*X*
lib/ lib64s/ ^ cursor here and TAB
bor@itsrm2:~%> l /usr/lib64s/libX11.a
libX11.a@ libXaw.so.6.1@ libXmu.so@ libXpm.so@
libX11.so@ libXdmcp.a@ libXmu.so.6.0@ libXpm.so.3.4@
........................
Looks like a problem with list redisplay. Completion code thinks, it has still
old valid list. And this also illustrates my point - in this case I do not want
menu completion - I just want list to be dislpayed. But, unfortunatley,
length(lib) < length(lib*X*) :-(
/andrej
Just in case:
6731, 6732 applied
next prev parent reply other threads:[~1999-06-21 7:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-06-17 8:37 Sven Wischnowsky
1999-06-17 9:27 ` Andrej Borsenkow
1999-06-21 7:53 ` Andrej Borsenkow [this message]
1999-06-21 11:51 pws-23: " Sven Wischnowsky
1999-06-21 12:38 Sven Wischnowsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000501bebbbb$24061750$21c9ca95@mow.siemens.ru' \
--to=borsenkow.msk@sni.de \
--cc=wischnow@informatik.hu-berlin.de \
--cc=zsh-workers@sunsite.auc.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).