Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
The mystery of deferred prompt evaluation
- X-seq: zsh-workers 6360
- From: Nik Gervae <nik@xxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: The mystery of deferred prompt evaluation
- Date: Thu, 27 May 1999 14:45:58 -0700
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
- Reply-to: nik@xxxxxxxxx
Folks--
If I do this in 3.0.5:
PROMPT_LEN=3
PROMPT_DYN='%${PROMPT_LEN}C'
PROMPT='%0(#..)${PROMPT_DYN}% '
I get the really cool feature of being able to change PROMPT_LEN at
any point and having my prompt adjust how much of my path it shows.
Oddly enough, this only works if I put the %(...) construct before
the parameter reference in the prompt, if that isn't there then my
prompt ends up being the literal text of the definition, with the
parameter not getting expanded. I might add that in 3.1.5 the latter
behavior is always the case (which I when I first noticed this).
Does anyone know:
a) Why I shouldn't be able to defer parameter expansion in my
prompts in general?
b) Why in 3.0.5 it works with %(...) before the parameter
but not without?
c) Why it doesn't work at all, ever, in 3.1.5?
d) How I can get this behavior back? :-)
In case you're wondering why I would want something so convoluted,
I was trying to make life easier for the non-power users, so that
they could set a single variable and get as much of the prompt as
they wanted without having to learn all the details of prompt
syntax. I happened to have the $(...) there for another such
feature, which is why this happened to work for me for so long.
--
Nik Gervae < nik at linna dot com >
Techwriter, vegan, dilettante
Messages sorted by:
Reverse Date,
Date,
Thread,
Author