The great Delete versus Backspace split

November 8, 2015

In the history of Unix, one of the great quiet divisions has been the split of what your erase character should be, with the choice being DEL (Ctrl-?) or Ctrl-H. In turn, this goes back to the physical serial terminals that for years were how you logged on to most Unix systems. In the days of real terminals, you wanted your Unix erase character to be set as whatever your terminal generated when you hit the big, prominent 'backspace' key (which was, of course, not at all programmable). Setting DEL when your key generated Ctrl-H or vice versa was a recipe for frustration and extra work.

If life was great, everyone would have agreed that the terminal backspace key generated one thing and we'd be done. Of course that didn't happen. As I remember it, most of the world's serial terminal makers decided that the backspace key would generate Ctrl-H, but Digital (aka DEC) decided to be special and have their backspace keys generate DEL. The Digital VT-52, VT-100, and later VT-series serial terminals were very popular, so Digital's decision had an outsized effect on Unix users. Adding to the fun for Unix users was the GNU Emacs decision to bind Ctrl-H to 'get help' and officially bless DEL as the (sole) delete character.

(It didn't hurt the (Unix) popularity of the VT series that for years you bought Digital computers to run Unix, first PDP-11s and later Vaxes.)

Although my history of this is somewhat complicated, I wound up in the Digital 'erase is DEL' camp, partly because it's what at least some of the hardware I used wanted to do and partly because it made life easier in GNU Emacs. Given this, you can probably guess the original cause of my swapping Backspace and Delete in X until recently; I started doing this when my office workstation changed from a DECStation to an SGI Indy. The DECStation's backspace key generated DEL (and all of my environment was set up to deal with that), while the SGI Indy's backspace key wanted to generate Ctrl-H. At the time I made the rational decision that it was simpler to use xmodmap to switch Backspace and Delete than to change my entire environment around.

(I don't know and can't remember what GNU Emacs's state was at the time as far as distinguishing the Backspace key from a typed Ctrl-H. These days they're definitely different under X.)

PS: I don't remember how the original vi behaved with Ctrl-H and DEL, but I think it was friendlier than GNU Emacs as far as dealing with a backspace key that sent Ctrl-H (at least if you had your stty erase character set properly, which you probably did).

Written on 08 November 2015.
« Why I (still) care about SELinux and its flaws
What sysadmins want out of logging means that it can't be too simple »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Nov 8 02:26:48 2015
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.