zsh-users
 help / color / Atom feed
* suffix alias on a generated file name
@ 2019-12-13 13:32 zzapper
  2019-12-14 11:17 ` Daniel Shahaf
  0 siblings, 1 reply; 6+ messages in thread
From: zzapper @ 2019-12-13 13:32 UTC (permalink / raw)
  To: zsh-users

Hi
I want to open the most recently editted text file with vim using a suffix 
alias

alias -s txt='gvim'
alias NF='*(.om[1])'
touch fred.txt
NF<tab>
*(.om[1])<TAB>
So double-tabbing will then exercise the suffix alias and open fred.txt in 
gvim.

BUT how do I do that without the manual TABing?


-- 
zzapper
https://twitter.com/dailyzshtip


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

* Re: suffix alias on a generated file name
  2019-12-13 13:32 suffix alias on a generated file name zzapper
@ 2019-12-14 11:17 ` Daniel Shahaf
  2019-12-15 16:20   ` zzapper
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Shahaf @ 2019-12-14 11:17 UTC (permalink / raw)
  To: zzapper; +Cc: zsh-users

zzapper wrote on Fri, Dec 13, 2019 at 13:32:37 -0000:
> Hi
> I want to open the most recently editted text file with vim using a suffix 
> alias
> 
> alias -s txt='gvim'
> alias NF='*(.om[1])'
> touch fred.txt
> NF<tab>
> *(.om[1])<TAB>
> So double-tabbing will then exercise the suffix alias and open fred.txt in 
> gvim.
> 
> BUT how do I do that without the manual TABing?

What's wrong with

alias NF='gvim *.txt(.om[1])'

?

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

* Re: suffix alias on a generated file name
  2019-12-14 11:17 ` Daniel Shahaf
@ 2019-12-15 16:20   ` zzapper
  2019-12-16  3:58     ` Daniel Shahaf
  0 siblings, 1 reply; 6+ messages in thread
From: zzapper @ 2019-12-15 16:20 UTC (permalink / raw)
  To: zsh-users

Daniel Shahaf <d.s@daniel.shahaf.name> wrote in
news:20191214111751.ot4jd3o5esekqyfb@tarpaulin.shahaf.local2: 


>> BUT how do I do that without the manual TABing?
> 
> What's wrong with
> 
> alias NF='gvim *.txt(.om[1])'
> 
> ?
> 
> 
That would be a work-around but what I'm looking for is more generic 
solution perhaps useful for other situations i.e. having generated a 
filename or command to re-present it to the shell so that I can in this 
case apply a suffix alias.


-- 
zzapper
https://twitter.com/dailyzshtip


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

* Re: suffix alias on a generated file name
  2019-12-15 16:20   ` zzapper
@ 2019-12-16  3:58     ` Daniel Shahaf
  2019-12-17 10:02       ` zzapper
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Shahaf @ 2019-12-16  3:58 UTC (permalink / raw)
  To: zsh-users

zzapper wrote on Sun, Dec 15, 2019 at 16:20:16 -0000:
> Daniel Shahaf <d.s@daniel.shahaf.name> wrote in
> news:20191214111751.ot4jd3o5esekqyfb@tarpaulin.shahaf.local2: 
> 
> 
> >> BUT how do I do that without the manual TABing?
> > 
> > What's wrong with
> > 
> > alias NF='gvim *.txt(.om[1])'
> > 
> > ?
> > 
> > 
> That would be a work-around but what I'm looking for is more generic 
> solution perhaps useful for other situations i.e. having generated a 
> filename or command to re-present it to the shell so that I can in this 
> case apply a suffix alias.

I suppose you could wrap the accept-line widget to perform expansion:

    accept-line() { zle expand-word; zle .accept-line -- "$@" 
    zle -N accept-line

(untested)

You could even make it perform repeated expansions until $BUFFER doesn't change.


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

* Re: suffix alias on a generated file name
  2019-12-16  3:58     ` Daniel Shahaf
@ 2019-12-17 10:02       ` zzapper
  2019-12-17 10:14         ` Daniel Shahaf
  0 siblings, 1 reply; 6+ messages in thread
From: zzapper @ 2019-12-17 10:02 UTC (permalink / raw)
  To: zsh-users

Daniel Shahaf <d.s@daniel.shahaf.name> wrote in
news:20191216035801.doeloio2cwauxguj@tarpaulin.shahaf.local2: 

> zzapper wrote on Sun, Dec 15, 2019 at 16:20:16 -0000:
>> Daniel Shahaf <d.s@daniel.shahaf.name> wrote in
>> news:20191214111751.ot4jd3o5esekqyfb@tarpaulin.shahaf.local2: 
>> 
>> 
>> >> BUT how do I do that without the manual TABing?
>> > 

> I suppose you could wrap the accept-line widget to perform expansion:
> 
>     accept-line() { zle expand-word; zle .accept-line -- "$@" 
>     zle -N accept-line
> 
> (untested)
> 
Daniel nothing seems to work I think there must be something 'funny' about 
the way a suffix alias works i.e it must be the first thing that the shell 
sees.



-- 
zzapper
https://twitter.com/dailyzshtip


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

* Re: suffix alias on a generated file name
  2019-12-17 10:02       ` zzapper
@ 2019-12-17 10:14         ` Daniel Shahaf
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Shahaf @ 2019-12-17 10:14 UTC (permalink / raw)
  To: zsh-users

zzapper wrote on Tue, 17 Dec 2019 10:02 +00:00:
> Daniel Shahaf <d.s@daniel.shahaf.name> wrote in
> news:20191216035801.doeloio2cwauxguj@tarpaulin.shahaf.local2: 
> 
> > zzapper wrote on Sun, Dec 15, 2019 at 16:20:16 -0000:
> >> Daniel Shahaf <d.s@daniel.shahaf.name> wrote in
> >> news:20191214111751.ot4jd3o5esekqyfb@tarpaulin.shahaf.local2: 
> >> 
> >> 
> >> >> BUT how do I do that without the manual TABing?
> >> > 
> 
> > I suppose you could wrap the accept-line widget to perform expansion:
> > 
> >     accept-line() { zle expand-word; zle .accept-line -- "$@" 
> >     zle -N accept-line
> > 
> > (untested)
> > 
> Daniel nothing seems to work I think there must be something 'funny' about 
> the way a suffix alias works i.e it must be the first thing that the shell 
> sees.

Aliases _are_ parsed very early (see zshexpn(1) near the top), but zle
widgets run even earlier than that, before the command-line is parsed at
all.

What the example code does is change the meaning of pressing
<Enter> so it's like pressing <Tab><Enter>. That's what you wanted to
do, isn't it?

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

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-13 13:32 suffix alias on a generated file name zzapper
2019-12-14 11:17 ` Daniel Shahaf
2019-12-15 16:20   ` zzapper
2019-12-16  3:58     ` Daniel Shahaf
2019-12-17 10:02       ` zzapper
2019-12-17 10:14         ` Daniel Shahaf

zsh-users

Archives are clonable: git clone --mirror http://inbox.vuxu.org/zsh-users

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.zsh.users


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