Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: refering to 2nd from last history parameter?



On Mon, 26 Jan 2015 14:17:23 +0100
Axel Beckert <abe@xxxxxxxxxxxxxxx> wrote:
> On Mon, Jan 26, 2015 at 12:16:49PM +0000, Peter Stephenson wrote:
> > On Mon, 26 Jan 2015 12:05:14 +0000
> > We could special case the meaning here: given that ranges have to be in
> > order, a range starting with "$" is by definition useless.  It's a bit
> > kludgy but this is !-history so it's hard to imagine anyone looking for
> > elegance.  Does this break anything?
> 
> Depends.
> 
> I'd expect that
> 
>   mkdir foo
>   mv foo foo-1
> 
> can be abbreviated 
> 
>   mkdir foo
>   mv !$ !$-1
> 
> i.e. that anything behind "!$" except a colon (as in "!$:t" or "!$:h")
> is taken literal.

That's not how it works at the moment --- because "-" means a range,
!$-1 alread has a special meaning, as you'll see if you try it.

> > I was wondering about using a different character, but I think any
> > solution where "minus" is not encoded by "-" is too obscure to be
> > useful.
> 
> I'd still prefer the form of "!!:<1" or shorter "!<2" instead of
> anything involving further characters after "$".

That's probably doable and easy enough to remember.  History's early
enough that normal syntactic meanings aren't relevant.

> Additionally, I thought we're talking about picking a single argument
> counting from the back, not from ranges of arguments -- which then could
> be "!<2-4" or "!<4-2". (I'd allow both forms as both can make sense.)

Yes, we are, but the point is "-" already *means* range and isn't going
to stop doing that.

pws



Messages sorted by: Reverse Date, Date, Thread, Author