zsh-users
 help / color / mirror / Atom feed
* Reverse history search and match for a specific token
@ 2021-09-07 10:53 Eric Smith
  2021-09-07 12:59 ` zzapper
  2021-09-07 21:30 ` Bart Schaefer
  0 siblings, 2 replies; 3+ messages in thread
From: Eric Smith @ 2021-09-07 10:53 UTC (permalink / raw)
  To: Zsh Users

Hi zshellers,

I use event history matching a fair amount and can subscript the command to return a specific token like this.
$ !?foo?:%
for the token containing foo
$ !?foo?:$
for the last token

How would I match for the token containing `bar`?

Thanks for the tips.

Best wishes
Eric


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Reverse history search and match for a specific token
  2021-09-07 10:53 Reverse history search and match for a specific token Eric Smith
@ 2021-09-07 12:59 ` zzapper
  2021-09-07 21:30 ` Bart Schaefer
  1 sibling, 0 replies; 3+ messages in thread
From: zzapper @ 2021-09-07 12:59 UTC (permalink / raw)
  To: zsh-users


On 07/09/2021 11:53, Eric Smith wrote:
> Hi zshellers,
>
> I use event history matching a fair amount and can subscript the command to return a specific token like this.
> $ !?foo?:%
> for the token containing foo
> $ !?foo?:$
> for the last token
>
> How would I match for the token containing `bar`?
>
> Thanks for the tips.
>
> Best wishes
> Eric

echo !?foo?:2 # second

echo !?foo?:0 # first

echo !?foo?:%   # token

echo !?foo?:$   # last

That's all I know await other answers

zzapper



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Reverse history search and match for a specific token
  2021-09-07 10:53 Reverse history search and match for a specific token Eric Smith
  2021-09-07 12:59 ` zzapper
@ 2021-09-07 21:30 ` Bart Schaefer
  1 sibling, 0 replies; 3+ messages in thread
From: Bart Schaefer @ 2021-09-07 21:30 UTC (permalink / raw)
  To: Eric Smith; +Cc: Zsh Users

On Tue, Sep 7, 2021 at 3:54 AM Eric Smith <es@trustfood.org> wrote:
>
> I use event history matching a fair amount and can subscript the command to return a specific token like this.
> $ !?foo?:%
> for the token containing foo
>
> How would I match for the token containing `bar`?

If I understand the question, you want the token containing bar from
the most recent command that contains foo, even if some other
intervening command also contains bar?

There's no single expansion that will do this.  What you would need is:

!?foo?:p
!?bar?:%

The :p step duplicates the most recent entry that contains foo,
without executing it, thus making it also the most recent that
contains bar.  You can then use :% to extract  the bar token.

To do it in one step you'd need ${(M)${(z)history[(r)*foo*]}:#*bar*}
but that's four and a half times as much typing.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-07 21:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-07 10:53 Reverse history search and match for a specific token Eric Smith
2021-09-07 12:59 ` zzapper
2021-09-07 21:30 ` Bart Schaefer

zsh-users

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.vuxu.org/zsh-users

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 zsh-users zsh-users/ https://inbox.vuxu.org/zsh-users \
		zsh-users@zsh.org
	public-inbox-index zsh-users

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.zsh.users


code repositories for the project(s) associated with this inbox:

	https://git.vuxu.org/mirror/zsh/

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git