Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: array with newlines preserved as literal text

On 2021-02-04 7:22 p.m., Bart Schaefer wrote:
I've never called what I think you mean anything but the "arguments"
or "argument list".  Unless "tail" means more than that.
Maybe just obsolete culture.  I learned that the tail was switches followed by arguments.  But if that's not how we speak now then that's not how we speak.
Anyway, more fiddling: I added " print -lr $@ " to my 'preexec()' and,
mirabile dictu, it seems to capture input exactly as typed:
"Exactly as typed" is going to include the entire (possibly
multi-line, pipelined, etc.) command input, not just one command.  How
much of that is the "tail"?
Good question.  I'll have to wait for the variable to contain something monstrous and then I'll know what can go wrong.  It sure looks good right now tho.
noglob _g '*$1*'  # Why the duplication?
God no!  Seriously I'm reading Peter's introduction finally, then I might have enough Latin to attempt the manual.  You guys don't know how baffling it is for someone who doesn't already understand it. Worst thing is just knowing where to look.

Preexec gets three strings in $@.

$1 is the string seen by the history mechanism
$2 is is a single-line summary of the command
$3 contains the full text that is being executed
Excellent, thanks. That's quite marvelous, that level of finesse.  I remember beating my head against that wall when I first got involved.  Turns out to be that simple.

Or more than three:

7 /aWorking/Zsh/Source 3 $ echo $PREV_COMMAND
l g; l f; l s
noglob _l g; noglob _l f; noglob _l s
noglob _l g
noglob _l f
noglob _l s

... very nice.

Messages sorted by: Reverse Date, Date, Thread, Author