Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: activate alias inside subshell
On 08/04/18 01:18 PM, Bart Schaefer wrote:
On Apr 8, 7:56am, Ray Andrews wrote:
}
} Is 'zsh -f' the answer to the above -- a truly clean test of something?
The first thing asked following most bug reports is "can you reproduce
this from zsh -f?" So yes. Start from -f and then load the minimum
number of changes to try what you want to try (e.g., add extendedglob
if necessary, zmodload zsh/parameter or other required modules, etc.).
Thanks, I hate wasting everyone's time over really elementary issues
like that.
} ... are very different! In the former the alias is 'pending' in the
} latter, it is active, yes? That's easy not to know.
Yes, that's correct. "alias" is really intended only to make interactive
shells easier (reduce typing), not to abbreviate scripts (even if the
script is going to be used interactively later).
I've always distrusted any sort of macro and I use aliases only in the
most limited way possible. The anomaly is with that 'print function and
line' code which seems to be impossible to put inside a function via
another function except via an alias IF you want to be able to turn it
on and off, thus the can of worms is opened and after that it becomes a
matter more of education. I do understand that " ${(%):-%x %I} " is a
parse time thing which is why that string can't be in a function called
by another function and report anything other than its position in the
immediate function, so the alias seems inevitable. If there was such a
thing as a runtime expansion of an alias, sorta an automatic 'eval',
that would be cool but I can believe that such a thing is just not on.
} BTW, results are hugely different if the redefined message function is
} redefined with or without 'function' prepended: " function msg () ... "
} vs. " msg () ... ". Most comments found on the internet suggest there
} should be no difference
There's no difference when "msg" is not an alias. But in
msg() ...
the word "msg" is in command position and therefore subject to alias
expansion, whereas in
function msg () ...
it is *not* in command position and will not be alias-expanded.
Ah!! Nuts ... I'm unconsciously thinking that a function definition is
somehow immune to alias substitution. Why would it be? And yes, the
'command position' thing is easy to forget about. I know it in theory
but in practice ...
Ok, I'll bet that's everything I need to understand my issue.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author