From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 8b7bec71 for ; Tue, 17 Sep 2019 00:42:58 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 735C29C002; Tue, 17 Sep 2019 10:42:56 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id CB92B947A2; Tue, 17 Sep 2019 10:42:43 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qUslvrki"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 45487947A2; Tue, 17 Sep 2019 10:42:42 +1000 (AEST) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by minnie.tuhs.org (Postfix) with ESMTPS id CA7539479A for ; Tue, 17 Sep 2019 10:42:41 +1000 (AEST) Received: by mail-pl1-f194.google.com with SMTP id f19so713320plr.3 for ; Mon, 16 Sep 2019 17:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=pU+fVoyvmUHSvgyrr56mZ4VutY4Rm2ARrFGbTuPTs7o=; b=qUslvrkipbPFHpyurHlrakjWLxTuAURk5pJ2/iSk2oBxi5KcgZm3916OK4hwWgipZE T8qTMdGdQd6ZRAm9HFVcW/GP1wjPEXr9DRSEdRhpvuixda7OhpQJ2rIT6MURGLaP3tY2 jEjz3lMIZ4U4r/gpVNruiy4UiMcvzSwv6U0UFlUVpfqKKQwWOt+dIP51ay6dzUmlNNtR uiiMCkKW9xBDfpxfyS9DFGdipp2h74FRvANS5H+yqALOIdO0xPZarCjV2cELvpRz2KS6 CwkuGOu0oN73MYLss8kyn5ZyqJFe+JKrTA0rCJJUYyt2SPDTB+lSq1SGOEFflZmj+qPS Q3PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=pU+fVoyvmUHSvgyrr56mZ4VutY4Rm2ARrFGbTuPTs7o=; b=tEzIRlHlfWY57ywHXutKlZqT439mAgpS0iFu/0GO2f+m3joc+1et01Giw0QxkIP+rV K1zh/ap7WvRTkSuViVMByFCc7P1t3XeA3ZM6jTUS7JXry/Ki0T05GXEH9gZDNlumUPki ZvbXBaU4umfzP6BwNn7hz7ejA6fHs6skrlOYc2fc+dvqsyi500Ql/VLeF8RbOiyajJN9 aZ/6NrC3frOCNSN00wGWVOp9siD+wqoYTiGlkt8i4WLuP3TPobT6PQs/I/8/++wzEk7c h/HcT5vyVhXnGv1ohRcGVR5uFcO/55GajSZJR5Bbi9ukicvJ7pgoN8ME9E3nQ7ZXXLx5 FSsA== X-Gm-Message-State: APjAAAVrdc2MchGzY3f40vjwLL0c0cQiAeJKQHfGVH/MoS7WU3LFGSJz nvwl0SAoUGeTdJb1TQfGnDqypHAm X-Google-Smtp-Source: APXvYqy8WEOdZ3K6vxoHzlbRX6Yk//+omG5uzEoWid2ZHpq1jMteI5/DBHpeN9n76Br7sx2Px67ovA== X-Received: by 2002:a17:902:968f:: with SMTP id n15mr958003plp.18.1568680960900; Mon, 16 Sep 2019 17:42:40 -0700 (PDT) Received: from localhost.localdomain ([1.129.139.177]) by smtp.gmail.com with ESMTPSA id s19sm321296pfe.86.2019.09.16.17.42.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Sep 2019 17:42:40 -0700 (PDT) Date: Tue, 17 Sep 2019 10:42:36 +1000 From: "G. Branden Robinson" To: tuhs@tuhs.org Message-ID: <20190917004233.4cgn6vabnmgwl5q5@localhost.localdomain> References: <201909170020.x8H0KWC6037690@tahoe.cs.Dartmouth.EDU> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="fbcg2pqvaw6cnarv" Content-Disposition: inline In-Reply-To: <201909170020.x8H0KWC6037690@tahoe.cs.Dartmouth.EDU> User-Agent: NeoMutt/20180716 Subject: Re: [TUHS] block operations in editors, was My EuroBSDcon talk X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --fbcg2pqvaw6cnarv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable At 2019-09-16T20:20:32-0400, Doug McIlroy wrote: > Ed imposes a structure, making a (finite) file into an array, aka > list, of lines. It's easy to define block moves and copies in a list. > But what are the semantics of a block move, wherein one treats the > list as a ragged-right 2D array? What gets pushed aside? In what > direction? How does a block move into column that not all destination > rows reach? How do you cope when the bottom gets ragged? How about the > top? Can one move blocks of tab-separated fields? >=20 > I think everyone has rued the lack of block operations at one time or > another. But implementing them in any degree of generality is a > stumbling block. What should the semantics be? Just in case anyone didn't know, Vim has what it calls "visual block" highlighting and operations. CTRL-V begins one and you use the usual movement keys to shape and size it, then an operator like (y)ank or (d)elete. It won't always work as one expects because of the very questions that Doug raises above. Vim also has characterwise blocks (begin with 'v') and linewise blocks (begin with 'V'). The last is, more than any other single factor, what pulled me over from traditional vi (really nvi in my case). It was a big win over line-counting with ":.,+n" expressions. In retrospect I should have been smarter and just typed ":.,/pattern/", using as /pattern/ some short string that did not appear in any of the lines I wanted to operate on. Though the vi clone with the best name was, indisputably, elvis. Regards, Branden --fbcg2pqvaw6cnarv Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAl2AK/IACgkQ0Z6cfXEm bc7tHg/7B+gERoD6Yrg42CQcbO1oqMSCwWRxmHe586Hmq8I/d4CSdp1eD0uxi5Jb TLOc84yv4fmwSIoy9hbJfvR7H/s4380Qe/aOccCGyDx161TIreVe+/SbfVbHiEFX XLjTIXR7etU7yXsuZTFRn3zOLFsVIuYeXS2lI4C+jFvsAXbWBaK0zhAtAwaZVODa JZVoLJCugDCGtb7TpnXiKWxRQtG89DvxE+mN74t7JDUGGtgd88X0LMB2i1XIcuYp t9sRCuSP6QjyfrRXNXVqdTQidC8bOJCJmXrGGastQymsIxvW1HiNJE9RPLJUdU6h KCDud/+dZDVNaIGhZiC/VIF3o/d3BbUO9YWWQ/unQ7RGhyLYudfh9pjhLhYuPUDe aQa+FzfaZBI37rmNw5f30sIDYikZTXpd0PFuZ5nrfpdcacKtPUu+coA7VfrElMz2 BOCRRQHFDbM3bLrB0MX6RT6omdfAi1bBzexhEjEUGsCue5QfX7DYcA/Xu3b0MNrA D6dD6GkfvAyANvQMjAgXqygS1m/HsUgKF15MNcGfAAphYY/CugzYI/PGNqNCowDk 66KK4m5aeaY1ndFEhM2FCyZ8kpbRtjRfy4a9NkdcHRpe1awGQM3ld3lr00kHqZB6 smOIcA94ivuM+Lpus7Wgv2TqlUk2cDt7+DWYna3V8lRgiuiIVv8= =c/oD -----END PGP SIGNATURE----- --fbcg2pqvaw6cnarv--