From: Roman Perepelitsa <roman.perepelitsa@gmail.com>
To: Ray Andrews <rayandrews@eastlink.ca>
Cc: zsh-users@zsh.org
Subject: Re: coloring substitution seems to eat next line.
Date: Thu, 10 Nov 2022 22:51:49 +0100 [thread overview]
Message-ID: <CAN=4vMpkMC+W7ygcDREM8UtJGqs+3RFCmMF-2CE+d_vn5HAHDg@mail.gmail.com> (raw)
In-Reply-To: <6d7ba212-be9d-6bb4-f5ce-9a796032ade0@eastlink.ca>
On Thu, Nov 10, 2022 at 10:42 PM Ray Andrews <rayandrews@eastlink.ca> wrote:
>
>
> On 2022-11-10 12:22, Bart Schaefer wrote:
> >
> > Most of the time you want the parens when assigning all the elements
> > of an array at once. You should not use the parens for anything
> > that's meant to be a single string (or number).
> Slowly I figure out what's really going on and don't have to rely on
> rote copying of syntax.
> > local MATCH MBEGIN MEND
> > which should never appear except inside a function, and should only
> > appear at the beginning of the function and not inside a loop.
> Heavy duty diagnostic stuff it seems.
> > $~foo (or ${~foo} means that the value of $foo should be interpreted
> > as a glob pattern rather than as a literal string.
>
> Ah! When you type it in there verbatim it seems to always be the
> pattern, but as a variable who's to say that the intention is? So some
> way of making it explicit avoids semantic confusion. That's robust, I
> like it. One more little thing:
>
>
> string="${cc[$aa]/*(#i)$filter*/}"
> if [[ "$string" ]]; then
> cc[aa]=''
> else
> cc[$aa]=${cc[$aa]/(#b)($~zsh_case${filter})/$'\e['$color;1m${match[1]}$'\e[0m'}
If you look back, you can find in my answers a way to:
1. Remove all elements of an array that don't match a pattern. It has this form:
array=(${(M)array:#pattern})
2. Perform a replacement in all elements of an array. Like this:
array=(${array//pattern/substitute})
Perhaps now you have enough familiarity with the syntax to see how it works.
You can save a tremendous amount of time by reading the official guide
and the reference. Set aside an evening or two and read them from
start to end. Exploring a language as a science project is a great way
to get started but at some point you'll become more efficient by
reading the blueprint. After that the language becomes an artifact
rather than a blackbox.
Roman.
next prev parent reply other threads:[~2022-11-10 21:53 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-10 0:43 Ray Andrews
2022-11-10 8:02 ` Roman Perepelitsa
2022-11-10 18:25 ` Ray Andrews
2022-11-10 18:36 ` Roman Perepelitsa
2022-11-10 18:45 ` Ray Andrews
2022-11-10 18:54 ` Bart Schaefer
2022-11-10 19:28 ` Ray Andrews
2022-11-10 20:22 ` Bart Schaefer
2022-11-10 21:42 ` Ray Andrews
2022-11-10 21:51 ` Roman Perepelitsa [this message]
2022-11-11 17:24 ` Ray Andrews
2022-11-10 22:47 ` Bart Schaefer
2022-11-10 23:07 ` Ray Andrews
2022-11-10 23:27 ` Bart Schaefer
2022-11-11 15:00 ` Ray Andrews
2022-11-11 18:15 ` Bart Schaefer
2022-11-11 18:50 ` Ray Andrews
2022-11-11 19:25 ` Bart Schaefer
2022-11-11 21:26 ` Ray Andrews
2022-11-12 4:24 ` Bart Schaefer
2022-11-12 14:03 ` Ray Andrews
2022-11-13 15:09 ` Ray Andrews
2022-11-14 14:12 ` Roman Perepelitsa
2022-11-14 17:08 ` Ray Andrews
2022-11-14 17:12 ` Roman Perepelitsa
2022-11-14 18:58 ` Ray Andrews
2022-11-14 20:00 ` Bart Schaefer
2022-11-14 23:25 ` Ray Andrews
2022-11-15 14:17 ` Belaboring substitution syntax Ray Andrews
2022-11-16 1:49 ` Bart Schaefer
2022-11-16 2:54 ` Ray Andrews
2022-11-16 6:26 ` Bart Schaefer
2022-11-16 14:08 ` Ray Andrews
2022-11-16 14:13 ` Roman Perepelitsa
2022-11-17 2:31 ` Bart Schaefer
2022-11-17 8:59 ` Roman Perepelitsa
2022-11-17 16:02 ` Ray Andrews
2022-11-16 20:46 ` Ray Andrews
2022-11-16 10:32 ` Roman Perepelitsa
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='CAN=4vMpkMC+W7ygcDREM8UtJGqs+3RFCmMF-2CE+d_vn5HAHDg@mail.gmail.com' \
--to=roman.perepelitsa@gmail.com \
--cc=rayandrews@eastlink.ca \
--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).