zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@sunsite.dk
Subject: Re: Adding a prefix to certain filename completions
Date: Thu, 07 Jul 2005 05:40:07 +0000	[thread overview]
Message-ID: <1050707054007.ZM14965@candle.brasslantern.com> (raw)
In-Reply-To: <20050707020210.GA5084@puritan.pnetwork>

[Aside:  Is it possible for you to convince your mail client not to send
text labeled us-ascii when it contains multi-byte characters (I think
they must be Unicode apostrophes?)  It makes it quite difficult to read.
I've manually edited them back to ' in the excerpt.]

On Jul 7,  4:02am, Nikolai Weibull wrote:
} Subject: Re: Adding a prefix to certain filename completions
}
} There's a problem with the +<n> option, though. I couldn't figure out
} a proper way of escaping the + that is the options name (just using \+
} doesn't work).

The + is not the option's name.  The name is whatever comes *after* the
initial - or + that introduces the option.  In fact, in this case +<n>
is not really an option at all; really it's a non-option argument that
happens to be allowed to be mixed in among the options.

The most effective way to handle it is to rewrite _my_files:

    _my_files () {
      case $PREFIX in
	(+) _message -e 'start at given line (default: end of file)' ;;
	(+<1->) _message -e 'line number' ;;
      esac
      case $PREFIX in
	(+*) _files -P './' $* ;;
	(*) _files $* ;;
      esac
    }

Another way is to pretend that the number is the option name:

    arguments=(
      ...
      +{1..9}-'[start at given line (default: end of file)]::line number: '
      ...
    )

I prefer the behavior of the modified _my_files (which, by the way,
should probably be renamed _vim_files if this is going to be added to
the stock completions).


  reply	other threads:[~2005-07-07  5:40 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-04 19:37 Nikolai Weibull
2005-07-05  0:13 ` William Scott
2005-07-05  8:07   ` Nikolai Weibull
2005-07-05 15:09     ` William Scott
2005-07-05 15:23     ` William Scott
2005-07-05  4:23 ` Thomas Köhler
2005-07-05  8:09   ` Nikolai Weibull
2005-07-05 14:25     ` William Scott
2005-07-05 17:28       ` Nikolai Weibull
2005-07-05 16:56         ` John Reese
2005-07-05 17:07         ` William Scott
2005-07-06  5:00       ` Bart Schaefer
2005-07-06 11:31         ` Nikolai Weibull
2005-07-07  2:02           ` Nikolai Weibull
2005-07-07  5:40             ` Bart Schaefer [this message]
2005-07-07  7:21               ` Dan Nelson
2005-07-07 10:58               ` Nikolai Weibull
2005-07-07 11:18                 ` Peter Stephenson
2005-07-07 11:58                   ` Doug Kearns
2005-07-07 12:11                   ` Nikolai Weibull
2005-07-07 12:54                     ` Peter Stephenson
2005-07-07 19:00                       ` Thomas Köhler
2005-07-07 14:51                 ` William Scott
2005-07-07 15:57                   ` Nikolai Weibull
2005-07-08  1:24                 ` Bart Schaefer
2005-07-08 10:12                   ` Nikolai Weibull
2005-07-05 17:01 ` Bart Schaefer
2005-07-05 19:14   ` Nikolai Weibull

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=1050707054007.ZM14965@candle.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=zsh-users@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).