zsh-users
 help / color / mirror / code / Atom feed
* Tab Expanding Global Aliases
@ 2014-02-04 18:10 zzapper
  2014-02-04 19:34 ` Bart Schaefer
  2014-02-04 23:52 ` Oliver Kiddle
  0 siblings, 2 replies; 8+ messages in thread
From: zzapper @ 2014-02-04 18:10 UTC (permalink / raw)
  To: zsh-users

Hi
I guess this must be an old chestnut for this NG.
But is there any reason why global aliases are not/could be tab expandable?


I am using http://zshwiki.org/home/examples/zleiab as an alternative

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


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

* Re: Tab Expanding Global Aliases
  2014-02-04 18:10 Tab Expanding Global Aliases zzapper
@ 2014-02-04 19:34 ` Bart Schaefer
  2014-02-04 20:43   ` zzapper
  2014-02-04 23:52 ` Oliver Kiddle
  1 sibling, 1 reply; 8+ messages in thread
From: Bart Schaefer @ 2014-02-04 19:34 UTC (permalink / raw)
  To: zsh-users

On Feb 4,  6:10pm, zzapper wrote:
}
} I guess this must be an old chestnut for this NG.
} But is there any reason why global aliases are not/could be tab expandable?

There's not only no reason, it's already supported.

zstyle ':completion:*' completer _expand_alias _expand _complete _ignored

Augmented with e.g.

zstyle ':completion:*:expand-alias:*' disabled yes

if you want to expand aliases with tab that would otherwise not expand.
(I haven't actually tried that ...)


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

* Re: Tab Expanding Global Aliases
  2014-02-04 19:34 ` Bart Schaefer
@ 2014-02-04 20:43   ` zzapper
  0 siblings, 0 replies; 8+ messages in thread
From: zzapper @ 2014-02-04 20:43 UTC (permalink / raw)
  To: zsh-users

Bart Schaefer <schaefer@brasslantern.com> wrote in 
news:140204113436.ZM21602@torch.brasslantern.com:

> zstyle ':completion:*' completer _expand_alias _expand _complete _ignored

Oh wow that is so cool

I can double complete  e.g.

vi NF<TAB>
vi  *~vssver.scc(.om[1])<TAB>
vi index.php

I have to backspace to get the 2nd completion

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

---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



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

* Re: Tab Expanding Global Aliases
  2014-02-04 18:10 Tab Expanding Global Aliases zzapper
  2014-02-04 19:34 ` Bart Schaefer
@ 2014-02-04 23:52 ` Oliver Kiddle
  2014-02-05 13:11   ` zzapper
  1 sibling, 1 reply; 8+ messages in thread
From: Oliver Kiddle @ 2014-02-04 23:52 UTC (permalink / raw)
  To: zsh-users

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1337 bytes --]

zzapper wrote:
> I guess this must be an old chestnut for this NG.
> But is there any reason why global aliases are not/could be tab expandable?

With global aliases, it is always worth considering using bindkey -s
instead. This expands the string immediately without needing a tab or
space.

So for example:
  bindkey -s 'Im' '| more'

It is then more important to choose combinations that you won't really
want to type. I used to prefix them with the ¬ that's on a UK keyboard
but I don't use a UK keyboard anymore.

An advantage of bindkey -s is that they can be used as abbreviations for
things that appear in the middle of a string. Common glob qualifiers,
for example:
  bindkey -s '\m' "(#qu$EUID)"
  bindkey -s '\p' '(../)##'

Given how popular global aliases for piping to the pager are, I'm
surprised we don't have a PIPENULLCMD. I'm guessing it is because the
shell has always allowed you to continue on a new line after a pipe but
maybe that isn't so important in an interactive shell.

The following works. You can still use |\ if you want continuation. Can
anyone foresee a problem with using it?  Any ideas on improvements such as
making the pager not appear in the history or on the terminal?
  zle-line-init () {
    local state=${(%):-%_}
    [[ $state = pipe && $PREBUFFER != *\\? ]] && zle -U $'less\n'
  }

Oliver


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

* Re: Tab Expanding Global Aliases
  2014-02-04 23:52 ` Oliver Kiddle
@ 2014-02-05 13:11   ` zzapper
  2014-02-05 13:48     ` Oliver Kiddle
  0 siblings, 1 reply; 8+ messages in thread
From: zzapper @ 2014-02-05 13:11 UTC (permalink / raw)
  To: zsh-users

Oliver Kiddle <okiddle@yahoo.co.uk> wrote in
news:6788.1391557936@quattro: 


> With global aliases, it is always worth considering using bindkey -s
> instead. This expands the string immediately without needing a tab or
> space.
> 
> So for example:
>   bindkey -s 'Im' '| more'
> 
I can get this to work but only if I begin the 'abbreviation' with I ???


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


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

* Re: Tab Expanding Global Aliases
  2014-02-05 13:11   ` zzapper
@ 2014-02-05 13:48     ` Oliver Kiddle
  2014-02-05 14:50       ` zzapper
  0 siblings, 1 reply; 8+ messages in thread
From: Oliver Kiddle @ 2014-02-05 13:48 UTC (permalink / raw)
  To: zsh-users

zzapper wrote:
> Oliver Kiddle <okiddle@yahoo.co.uk> wrote in
> > With global aliases, it is always worth considering using bindkey -s
> > instead. This expands the string immediately without needing a tab or
> > space.
> > 
> > So for example:
> >   bindkey -s 'Im' '| more'
> > 
> I can get this to work but only if I begin the 'abbreviation' with I ???

There was a mistake in my example using a backslash. It should be, e.g.:
  bindkey -s '\\m' "(#qu$EUID)"

You also have to be fairly fast if you've set KEYTIMEOUT low.

Oliver


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

* Re: Tab Expanding Global Aliases
  2014-02-05 13:48     ` Oliver Kiddle
@ 2014-02-05 14:50       ` zzapper
  2014-02-05 15:04         ` Peter Stephenson
  0 siblings, 1 reply; 8+ messages in thread
From: zzapper @ 2014-02-05 14:50 UTC (permalink / raw)
  To: zsh-users

Oliver Kiddle <okiddle@yahoo.co.uk> wrote in news:31943.1391608101
@thecus.kiddle.eu:

> KEYTIMEOUT
Mine was set to 40 and that was my problem.
But what is a good value?


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


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

* Re: Tab Expanding Global Aliases
  2014-02-05 14:50       ` zzapper
@ 2014-02-05 15:04         ` Peter Stephenson
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Stephenson @ 2014-02-05 15:04 UTC (permalink / raw)
  To: zsh-users

On Wed, 05 Feb 2014 14:50:32 +0000 (UTC)
zzapper <david@rayninfo.co.uk> wrote:
> Oliver Kiddle <okiddle@yahoo.co.uk> wrote in news:31943.1391608101
> @thecus.kiddle.eu:
> 
> > KEYTIMEOUT
> Mine was set to 40 and that was my problem.
> But what is a good value?

You need to experiment.  Increase it until you get it right with a bit
of practice, but if you find when you type the first key and you're
frustrated because it hasn't appeared (because the shell is waiting to
see if it's the prefix of a sequence) you've increased it too far.

pws


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

end of thread, other threads:[~2014-02-05 15:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-04 18:10 Tab Expanding Global Aliases zzapper
2014-02-04 19:34 ` Bart Schaefer
2014-02-04 20:43   ` zzapper
2014-02-04 23:52 ` Oliver Kiddle
2014-02-05 13:11   ` zzapper
2014-02-05 13:48     ` Oliver Kiddle
2014-02-05 14:50       ` zzapper
2014-02-05 15:04         ` Peter Stephenson

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).