I think the simple summary "anything that screws up emacs users is good" pretty 
much says it all.

  Johnny 


Robert Elz <k...@munnari.oz.au> skrev: (19 juli 2021 19:45:14 CEST)
>    Date:        Mon, 19 Jul 2021 08:49:31 -0400
>    From:        Greg Troxel <g...@lexort.com>
>    Message-ID:  <rmilf62a2p0....@s1.lexort.com>
>
>  | As additional background, IMHO all of this confusion arose from the
>  | differing setups of DEC computers and the IBM PC.
>
>It is older than that.
>
>  | On a real terminal as
>  | one would have used with a PDP-11 or VAX in the 70s/80s/early-90s,
>
>"Real terminals" existed long before PDP-11's or VAXen.  They had keys
>that struck paper and made marks.
>
>On those backspace moved backwards a character, and typing something
>else
>overstruck the previous character (sometimes intentionally, often just
>making a mess).   Delete did nothing at all.
>
>Some of those paper terminals also had paper tape punches and readers.
>This allowed "off line" preparation of input, or messages (these
>terminals
>were used for telex / telegraph type operations, more than computers,
>computers just needed something for interactive input, that is
>something
>different than punched cards, and these were available).
>
>When preparing a punched paper tape, to erase a mistaken character, one
>relied on "delete does nothing" along with "delete is 0x7f", which when
>converted to even parity format, is 0xFF, and since a "1" was recorded
>on
>the tape as a hole, punching a delete changed whatever was there before
>into the delete code (all rows punched), which, as above, did nothing.
>But to overstrike the previous character, one needed first to move
>backwards
>to be over it - that was what a "backspace" accomplished.
>
>So, on "real terminals" the sequence to erase the previous character
>was
>"backspace delete", and yes, the user had to type both of them - and to
>erase two characters, one needed backspace backspace delete delete
>(etc).
>
>When "glass ttys" started to become popular, their manufacturers
>initially provided both keys - but computer systems wouldn't require
>users to type both chars, but different systems picked differently.
>Some used DEL (most Digital OS's did that), others used BSP (most
>other systems, since that was the thing that worked easiest on a glass
>tty - overstriking was destructive, so to replace one char with another
>one simply did "backspace, replacement".  But DEC had settled on DEL
>as the preferred choice before glass ttys (or the "modern" form,
>Tektronix
>had a storage scope kind of thing, which was more like a paper
>terminal,
>just without paper) were invented.
>
>Unix used # for the erase character, as on a paper terminal you could
>see
>that, count how many # chars, and mentally erase that number of
>previous
>other characters (and @ was the line kill character, DEL was
>"interrupt").
>
>Many unix users (but not all) had come from a DEC background, and in
>particular
>a lot of BSD users, where there was "VMS vs BSD unix" type competition
>all over
>the place.   So when BSD changed the defaults from # and @, they picked
>the
>DEC convention (DEL ^U ^C) - which irritated non-DEC users a bit (like
>me)
>who used non-DEC glass terminals, with BSP in a convenient location,
>and DEL
>somewhere obscure (more obscure, usually smaller key).   Never mind, it
>was
>user configurable (had been since the very early days, at least for
>erase and
>kill - interrupt and quit were not configurable initially - which was
>one
>reason many people in the early days used BSP for erase, DEL remained
>hard
>wired as interrupt).
>
>| That led, I think,  i386 unix (386BSD, then early NetBSD) to let the
>key
>  | send ^H and configure erase to ^H, breaking emacs
>
>That alone IMO is the biggest feature.   Anything that breaks emacs,
>even in
>trivial ways like this, is GOOD.
>
>  | I don't see that as possible, and I have no idea why you would want
>| that.  Once you have the key that is logically the delete key sending
>  | DEL as original ASCII intended,
>
>It certainly intended nothing of the kind, DEL was "deleted" just as
>NUL
>was "never entered" (empty space on the paper tape where nothing had
>been
>punched).   Both were simply ignored and had no effect whatever (and so
>could be used for padding characters after sending something which the
>terminal would take a long time to execute, like carriage-return or
>line
>feed.
>
>If you ever actually used paper tape (I did) the last thing you'd ever
>want
>was for DEL to start being interpreted as anything other than "nothing
>here".
>On the other hand, as backspace never (usually) ever got onto the tape,
>it changed its position instead, that one turns out to be a nice choice
>for
>the erase character (paper tapes don't need it - the erasing is already
>done).
>
>That using ^H (BSP) as erase screws emacs users is just a bonus point.
>
>  | What are you trying to
> | accomplish with this?   Or are you asking "is there some way to have
>  | multiple characters function as erase in the tty"?
>
>But that's a good question.   The tty driver (which is all you get when
>you're in cat - unlike in a program which uses libedit or readline, or
>similar where all this is done in those libraries, or in the program
>itself)
>has exactly one erase character - you can set it to anything you like
>(hopefully something you can type), but you only get one of them (and
>one
>line kill, one interrupt, one quit, one pause output, one restart it,
>one
>discard output, one signal stop (and one delayed version of that).
>
>kre

-- 
Skickat från min Android-enhet med K-9 Mail. Ursäkta min fåordighet.

Reply via email to