From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12053 invoked from network); 20 Jul 2021 18:32:56 -0000 Received: from tb-ob0.topicbox.com (64.147.108.117) by inbox.vuxu.org with ESMTPUTF8; 20 Jul 2021 18:32:56 -0000 Received: from tb-mx0.topicbox.com (tb-mx0.nyi.icgroup.com [10.90.30.73]) by tb-ob0.topicbox.com (Postfix) with ESMTP id 9E4F32A69F for ; Tue, 20 Jul 2021 14:32:54 -0400 (EDT) (envelope-from bounce.mM4fb1e908c2fdeb00adbda077.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx0.topicbox.com (Postfix, from userid 1132) id 9B68B2DDB8E3; Tue, 20 Jul 2021 14:32:54 -0400 (EDT) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fI/T4XIt header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=inkswinc@gmail.com smtp.helo=mail-yb1-f171.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1626805974; bh=Y0ogjho1Z9T1DztR u/Ul8769W6T8HAGsPHuIUIInPvU=; b=j9cdy3iJShzlYSNlLMIAtixXjiskFJaK c/MrIqSX+GEigEWXPULR3Ge7RclSI5R8cHp/SX2vhXRbIOZ3YCBpRyQk/KcgFBwD BKvtTfOAUOC7Ubj1Y6eCiD8/4QXlkt9GCyl4sEKYhcwhMaH/wvHgtae/eln4gSqY dziNcDaiiMI= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1626805974; b=BhlaHmGTz/0fr4gqrCR+sz06NDfWzOej+jOE0vWAVLWP4QEn// mO5gcaSdp19ceKSXpcYtiskiE4G16lKuGchaDYxcjwWjaLyTKfE7EeJeOuIBoC7k gmD/wYOvN78+dHO7jUeZUZNtxeb6A7KY0a3m0j9wB3/DHbITA2H95zXpM= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fI/T4XIt header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=inkswinc@gmail.com smtp.helo=mail-yb1-f171.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fI/T4XIt header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.219.171 (mail-yb1-f171.google.com); spf=pass smtp.mailfrom=inkswinc@gmail.com smtp.helo=mail-yb1-f171.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=Gcr9ezG0; x-me-sender=none; x-ptr=pass smtp.helo=mail-yb1-f171.google.com policy.ptr=mail-yb1-f171.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; bh=Y0ogjho1Z9T1DztRu/Ul8769W6T8HAGsPHuIUIInPvU=; b=DJE2cEuBjuJz YPwKnQbF0MVzPG+4c5qMU5MmZDDYA9zKRE9fDWVaaA4bKRnss7ObMbloPwP+eW7C qH8cUJ7vl6QvFS3gmzi+IEFqns8Sw4jy+R5H/BbY00kTFVR7GjIIjavSSLLYF0+D xLsx5AXTQdmVAvgpz6erTmeND2vpB94= Received: from tb-mx0.topicbox.com (localhost.local [127.0.0.1]) by tb-mx0.topicbox.com (Postfix) with ESMTP id 5C99D2DDB4C0 for <9fans@9fans.net>; Tue, 20 Jul 2021 14:32:44 -0400 (EDT) (envelope-from inkswinc@gmail.com) Received: from tb-mx0.topicbox.com (localhost [127.0.0.1]) by tb-mx0.topicbox.com (Authentication Milter) with ESMTP id 49D67795C06; Tue, 20 Jul 2021 14:32:44 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1626805964; b=XiAkHZ+wdOjXlbomGsC6JV32bFB35dzxDSm6O74yQ87E19m4/Q h0NZ2qZNGWbyEImjf1c3xP833Q3wnsbd9bGUTigdz1372XM6WYL6zL1riVdKTc7F ywclnNErASUOxK1613Hsbx9CfQYMtLCy0fr76Tym69Ne84YTYoCTYqOv/O8t3T3S QzlpqauJfSkJi7OHeqC+K/ntqNY5Pm9WACx2hucUpX0wB1doTbKVyPscNSVlUEHM aZwWLf6/dsV/QT2h6xaxLvgIFkVQTgKiL7xFh8RgxVp8VDQwQy5sDw71oHfBjr9X qpuAGLmjSsFJ+JvEQ6tgjTC8D6tii30S/bnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type; s=arcseal; t=1626805964; bh=9HAe867Vv7IsfS2ZvhvKDn6Z46nHOsEN+8vr5sM7vZ4=; b=lAAERe/56TnT iG1bWzwdy1f+xRsHS50XiIaAgrMaV+34rPpcefKwX/4JKEY0Wv2fMdYAuvq7eofM 2n1kEQ7S2c0LfS2zjR2P++S/A91vBSH0ILvIIS8RTuPM6FO1yjtampBoiclr89jP hpq0wX6llBJ/5NWwBf9a5FNCp1TadP1RS5UwCl4rc+in9vUfLgidLyXcKz+PYRMR fHH3W5sO3Mg6zEaP5EUBRsoUpDJ9NnEhCJSzSi7Lvhw+QV+HfDvfvvYWQ0z/GrJm 1MHDHDxTOwK5CScW692uVpju9/NgTkWH/3qsnilPs9Hg3+c/Ja7Ew1RY4S2WQyX7 q9o0aJp4sg== ARC-Authentication-Results: i=1; tb-mx0.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=fI/T4XIt header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.219.171 (mail-yb1-f171.google.com); spf=pass smtp.mailfrom=inkswinc@gmail.com smtp.helo=mail-yb1-f171.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=Gcr9ezG0; x-me-sender=none; x-ptr=pass smtp.helo=mail-yb1-f171.google.com policy.ptr=mail-yb1-f171.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgedvtddrfedvgdduvdegucdltddurdegudelrddttd dmucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgf nhhsuhgsshgtrhhisggvpdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttd enucenucfjughrpeggfhgjhfffkffuvfgtsehttdertddttdejnecuhfhrohhmpefuihhl rghsucfotgevrhhoshhkvgihuceoihhnkhhsfihinhgtsehgmhgrihhlrdgtohhmqeenuc ggtffrrghtthgvrhhnpeehjeeiffffveeludeuhffhhfffhedtueelgeeuteeffedukeeg ledtieffueduleenucfkphepvddtledrkeehrddvudelrddujedunecuvehluhhsthgvrh fuihiivgeptdenucfrrghrrghmpehinhgvthepvddtledrkeehrddvudelrddujedupdhh vghlohepmhgrihhlqdihsgduqdhfudejuddrghhoohhglhgvrdgtohhmpdhmrghilhhfrh homhepoehinhhkshifihhntgesghhmrghilhdrtghomheq X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'inkswinc@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx0.topicbox.com; identity=mailfrom; envelope-from="inkswinc@gmail.com"; helo=mail-yb1-f171.google.com; client-ip=209.85.219.171 Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx0.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Tue, 20 Jul 2021 14:32:43 -0400 (EDT) (envelope-from inkswinc@gmail.com) Received: by mail-yb1-f171.google.com with SMTP id k184so33994953ybf.12 for <9fans@9fans.net>; Tue, 20 Jul 2021 11:32:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=9HAe867Vv7IsfS2ZvhvKDn6Z46nHOsEN+8vr5sM7vZ4=; b=Gcr9ezG09mZQ2TVp0DeDBINC95IIK0wq6+5mGQnyaZUKPP2J3staaoZnsek6s4PE1S lVVt8SIQ4srIV5Jy4FBzn73X2/RE+2nxzIq48tcEjAFPs5LvDKDcmLW6l+vtA8SydMK2 kbwXTPTwPfZKblmY7WXF55AiEgIC31y1zkg2mdImXf7AsolHHIyF5nCwX20ufaeOT5GM oBjNwDe3OqzUW9Ean9ZEq7R/WHtEs0qA0Yh9649ODICBDgtRrxVazPblF/FVv6ernGd2 BvrObsmkOdelpDB7RJA2Q2+/P3jGEjt9tpDx5C+Cy+BGDVdQSlAMOQyrI8DEKARMnocX SHnA== X-Gm-Message-State: AOAM530LJ+dly7BgO19uJ5kMDe2uyrQay/CmrZw+aUQuHGqypb7T0YBi J26F9MIMqGvWc9Y2lgehAreDDWczmUz9WSZz5SJxO3M79ZM= X-Google-Smtp-Source: ABdhPJz1z+AXW+xZJFNgp7Gh8ZXwpmm/CjvJMvogdZXyQfgcmEZ5rUcCOYZSmbU+/CUFo/yz9siIvNJplrycp84Fkyk= X-Received: by 2002:a25:40ca:: with SMTP id n193mr40128517yba.293.1626805962941; Tue, 20 Jul 2021 11:32:42 -0700 (PDT) MIME-Version: 1.0 References: <16267887080.DB09C5b.87154@composer.9fans.topicbox.com> <16267908650.B85f3eFAF.29721@composer.9fans.topicbox.com> <16267914840.B1cFDa41.999900@composer.9fans.topicbox.com> <16267959280.0118f7b.178764@composer.9fans.topicbox.com> In-Reply-To: <16267959280.0118f7b.178764@composer.9fans.topicbox.com> From: Silas McCroskey Date: Tue, 20 Jul 2021 11:32:31 -0700 Message-ID: Subject: Re: [9fans] ed regular expressions in sam To: 9fans <9fans@9fans.net> Content-Type: text/plain; charset="UTF-8" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: e29e7978-e988-11eb-9f68-98d2cf01aef4 Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UZTdmY2RjMDZhNjhiYjc3Ny1NNGZiMWU5MDhjMmZkZWIwMGFkYmRh?= =?UTF-8?B?MDc3Pg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: quoted-printable List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:M4fb1e908c2fdeb00adbda077:1:tKmUxd6M_W-OzJi9CBmnSShaJmRuxll-flKgDAASxMQ > I have yet gotten to this usage of "g" after "s". The key difference here is not in the behavior of suffixed 'g', but in how selections are made and operated on in the first place. Ed's "selection" (aka dot, as you can reference it with '.') is always a full, single line. It can *iterate* over multiple lines with prefixed 'g', but each command (e.g. 's') will be run against only one line at a time. As a result, suffixed 'g' always means "allow multiple edits within this line" (alternatively, *not* suffixing with 'g' means "only edit the first occurence of each line"). Sam's "selection" is more arbitrary -- it can be (and frequently is) less than a line or multiple lines at once. In this case 'g' takes on a different meaning -- "allow multiple edits within this selection" -- meaning if you *don't* pass 'g', and you're working with a multi-line selection, only the first match in the entire selection will be changed by the 's', regardless of whether other matches occurred on separate lines. As rob pointed out, interposing an 'x' without a regex will split the selection into lines and iterate over each, getting you back to the line-at-a-time behavior that is often easier to reason about. ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Te7fcdc06a68bb777-M4fb1e= 908c2fdeb00adbda077 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription