zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@zsh.org
Subject: Seeking feedback word breaks and aliasing of tokens
Date: Fri, 27 Mar 2015 09:05:01 -0700	[thread overview]
Message-ID: <150327090501.ZM4166@torch.brasslantern.com> (raw)

Following a discussion a few weeks ago, a new feature was added to the
"alias" builtin, namely the ability to create aliases for tokens that
are part of the basic pipeline syntax.  The example that led to this
feature was similar to the following:

% alias -g '&&'='; (( $? == 0 )) && '
% && print this is OK
this is OK
% && print and so is this && print also this
and so is this
also this
% 

This feature has already been adopted, with the restrictions (a) that it
applies only to global aliases [-g] and (b) that it is disabled when the
POSIX_ALIASES option is set.

There is an additional effect of this feature, illustrated by:

% alias -g '||'='OR'
% print no||yes
no ORyes
% 

Note that a word break is introduced to the left of the expansion (because
of '||'s original meaning as shell syntax) even though there are no spaces
around the original usage; but no word break occurs to the right of the
expansion.  The proposal is for word breaks on both sides of the expansion
(as is implied by recognition of a separately aliasable word).

This also affects the '{' reserved word, so instead of this:

% alias '{'=echo
% { OK
OK
% {not OK
zsh: command not found: echonot
% 

We would have this:

% {now OK
now OK
% 

(Note that '{' doesn't require "alias -g" because '{' is a reserved word.)

Comments welcome.


             reply	other threads:[~2015-03-27 16:05 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-27 16:05 Bart Schaefer [this message]
2015-03-28 23:58 ` Eric Cook
2015-03-29  4:19   ` Bart Schaefer
2015-03-29  4:47     ` Bart Schaefer
2015-03-29 17:09     ` Eric Cook
2015-03-29 21:02       ` Bart Schaefer
2015-05-15  0:41 ` Oliver Kiddle
2015-05-15  1:35   ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=150327090501.ZM4166@torch.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).