Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: How to avoid expansion when completing?
- X-seq: zsh-users 3354
- From: Peter Stephenson <pws@xxxxxxx>
- To: zsh-users@xxxxxxxxxxxxxx (Zsh users list), Richard Curnow <Richard.Curnow@xxxxxx>
- Subject: Re: How to avoid expansion when completing?
- Date: Thu, 03 Aug 2000 10:19:05 +0100
- In-reply-to: "Your message of Thu, 03 Aug 2000 08:51:26 BST." <20000803085126.I13662@xxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxxxxxx; run by ezmlm
> Suppose I have a load of subdirectories, each of which contains a file
> called foobar.dat. I enter
>
> % wc **/foob<Tab>
>
> hoping to expand this to **/foobar.dat (assuming there's nothing else
> starting with 'foob' in any of the subdirectories). However, I get the
> '**' expanded to the first subdirectory name which has a file starting
> with 'foob' in it. (If I keep pressing <Tab> then I cycle round).
>
> I've got the following options set, and I'm running version 3.1.5.
If you don't mind upgrading, you can do such things with the new bindable
completion widgets in 3.1.9 (maybe 3.1.6, but that's irrelevant if you're
still on 3.1.5). Assuming the file is unique, you can use
e.g. _most_recent_file (usually bound to ^xm), which would normally put a
`*' on the end and find the most recently modified matching file --- that
ought to be enough for this purpose.
The following function is a trivial modification of that to add all
matching files as possible completions (_glob_expand_and_complete).
Sven probably has a better way of doing it.
#compdef -k complete-word \C-xG
local file tilde etilde
if [[ $PREFIX = \~*/* ]]; then
tilde=${PREFIX%%/*}
etilde=${~tilde}
file=($~PREFIX*$~SUFFIX)
file=(${file/#$etilde/$tilde})
else
file=($~PREFIX*$~SUFFIX)
fi
(( $#file )) && compadd -U -i "$IPREFIX" -I "$ISUFFIX" -f -Q $file
--
Peter Stephenson <pws@xxxxxxx>
Cambridge Silicon Radio, Unit 300, Science Park, Milton Road,
Cambridge, CB4 0XL, UK Tel: +44 (0)1223 392070
Messages sorted by:
Reverse Date,
Date,
Thread,
Author