The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* Re: [TUHS] block operations in editors, was My EuroBSDcon talk
@ 2019-09-17 11:34 Thomas Paulsen
  0 siblings, 0 replies; 10+ messages in thread
From: Thomas Paulsen @ 2019-09-17 11:34 UTC (permalink / raw)
  To: g.branden.robinson; +Cc: tuhs

---------------------------------
>
> Though the vi clone with the best name was, indisputably, elvis.
>
unfortunately unmaintained.
elvis has a smaller memory footprint, and a more pleasant (nroff later html) based help support than vim. There are no plugin, vimscript feature sas well as no python/perl support. I'm interested in a vi with syntax coloring and help support, however I don't need scripting features. Therefore I hope someone will take over maintenance, as I'm too old for tha



^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [TUHS] block operations in editors, was  My EuroBSDcon talk
@ 2019-09-17 17:31 Doug McIlroy
  2019-09-18  4:47 ` Steve Johnson
  0 siblings, 1 reply; 10+ messages in thread
From: Doug McIlroy @ 2019-09-17 17:31 UTC (permalink / raw)
  To: tuhs, jnc

Noel Chiappa wrote:

>    > From: Doug McIlroy
>
>    > the absence of multidemensional arrays in C.
>
>?? From the 'C Reference Manual' (no date, but circa 'Typesetter C'), pg. 11:
>
>  "If the unadorned declarator D would specify an n-dimensional array .. then
>  the declarator D[in+1] yields an (n+1)-dimensional array"
>
>
>I'm not sure if I've _ever_ used one, but they are there.

Yes, C allows arrays of arrays, and I've used them aplenty.
However an "n-dimensional array" has one favored dimension,
out of which you can slice an array of lower dimension. For
example, you can pass a row of a 2D array to a function of a
1D variable, but you can't pass a column. That asymmetry
underlies my assertion. In Python, by contrast, n-dimensional
arrays can be sliced on any dimension.

Doug

^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [TUHS] block operations in editors, was  My EuroBSDcon talk
@ 2019-09-17 15:36 Noel Chiappa
  0 siblings, 0 replies; 10+ messages in thread
From: Noel Chiappa @ 2019-09-17 15:36 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Doug McIlroy

    > the absence of multidemensional arrays in C.

?? From the 'C Reference Manual' (no date, but circa 'Typesetter C'), pg. 11:

  "If the unadorned declarator D would specify an n-dimensional array .. then
  the declarator D[in+1] yields an (n+1)-dimensional array"

I'm not sure if I've _ever_ used one, but they are there.

    Noel

^ permalink raw reply	[flat|nested] 10+ messages in thread
* [TUHS] block operations in editors, was  My EuroBSDcon talk
@ 2019-09-17  0:20 Doug McIlroy
  2019-09-17  0:42 ` G. Branden Robinson
  2019-09-17  1:25 ` Bakul Shah
  0 siblings, 2 replies; 10+ messages in thread
From: Doug McIlroy @ 2019-09-17  0:20 UTC (permalink / raw)
  To: tuhs, ggm

> The "block copy in an editor" thing is something which has intrigued
> me for years. poor old ed/ex/vi just couldn't do it, and for the life
> of me, I could not understand why this was "deprecated" by the people
> writing that family of editors.

One might trace it to the founding tenet that a file is a stream of bytes,
reinforced by the absence of multidemensional arrays in C. But it goes
deeper than that.

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?

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?

> Similarly the 'repeat this sequence of commands' thing which emacs had.

Ed's g command does that, except the sequence can't contain another g.
Sam, barely harder than ed to learn, cures that deficiency and generalizes
in other ways, too--but has no block operations.

Doug

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-09-18  4:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-17 11:34 [TUHS] block operations in editors, was My EuroBSDcon talk Thomas Paulsen
  -- strict thread matches above, loose matches on Subject: below --
2019-09-17 17:31 Doug McIlroy
2019-09-18  4:47 ` Steve Johnson
2019-09-18  4:52   ` Jon Steinhart
2019-09-17 15:36 Noel Chiappa
2019-09-17  0:20 Doug McIlroy
2019-09-17  0:42 ` G. Branden Robinson
2019-09-17  2:02   ` George Michaelson
2019-09-17 11:01   ` Thomas Paulsen
2019-09-17  1:25 ` Bakul Shah

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).