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