From: Oliver Kiddle <okiddle@yahoo.co.uk>
To: zsh-workers@sunsite.dk
Subject: ignore-line style
Date: Tue, 09 Oct 2001 16:52:16 +0100 [thread overview]
Message-ID: <3BC31D30.11F61508@yahoo.co.uk> (raw)
I use this style:
zstyle ':completion:*:*:(cat|diff|less|rm|vi):*' ignore-line true
So, filenames I've already mentioned are not offered for completion
with these commands. This is useful but there is a problem:
With diff, it is quite common to compare a file to another file with
the same name in a different directory but this style blocks completion
of the second file. e.g: diff file ../fi<tab>
It needs to include the `../' in the comparison against other words on
the line.
The patch below adds a `full-word' value for ignore-line to show a
possible fix but I think we need more than this patch. This doesn't
work if the current line includes words which are patterns for a start.
This change is perhaps needed in conjunction with the `other' value
too. And it would be useful to be able to ignore the first word (the
command) as well as the current one.
Next, there could be an option to use "${(q)words[@]}" to quote
the words so they aren't used as patterns - useful if the command is
being used with noglob or with non-file parameters. Otherwise, working
like a real file glob so *.o doesn't match .o would be nice. And maybe
a way to define a further pattern which words in _comp_ignore need to
match so that you can exclude any non-file arguments such as options.
I also wonder whether we shouldn't be passing the previous words as a
-F argument to compadd from _diff & co. in the first place.
Any thoughts or ideas?
Oliver
--- Completion/Base/Core/_description Tue May 8 10:12:50 2001
+++ _description Tue Oct 9 15:38:53 2001
@@ -38,6 +38,7 @@
zstyle -s ":completion:${curcontext}:$1" ignore-line hidden &&
case "$hidden" in
true|yes|on|1) _comp_ignore=( "$_comp_ignore[@]" "$words[@]" );;
+ full-word) _comp_ignore=( "$_comp_ignore[@]" "${(M)words[@]:#$PREFIX*$SUFFIX}" );;
current) _comp_ignore=( "$_comp_ignore[@]" "$words[CURRENT]" );;
current-shown) [[ "$compstate[old_list]" = *shown* ]] &&
_comp_ignore=( "$_comp_ignore[@]" "$words[CURRENT]" );;
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp
next reply other threads:[~2001-10-09 15:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-10-09 15:52 Oliver Kiddle [this message]
2001-10-15 14:03 ` Sven Wischnowsky
2001-10-15 15:12 ` Nadav Har'El
2001-10-17 13:27 ` Sven Wischnowsky
2001-10-18 16:32 ` Oliver Kiddle
2001-10-19 9:29 ` Sven Wischnowsky
2001-10-19 16:50 ` Oliver Kiddle
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=3BC31D30.11F61508@yahoo.co.uk \
--to=okiddle@yahoo.co.uk \
--cc=zsh-workers@sunsite.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).