Re: [Mutt] #2952: <BackSpace> should use terminal settings
#2952: <BackSpace> should use terminal settings
Comment (by Kyle Wheeler):
{{{
On Tuesday, September 11 at 07:48 AM, quoth Mutt:
> But remember that in Mutt, the backspace key is not used in the
> editor only, but also in the index, the pager and so on.
So what? Should mutt not be consistent? If I have:
bind index <BackSpace> delete-message
bind editor <BackSpace> backspace
...should I not expect that in both cases I am referring to the same
key?
> And what if some user prefers to use the delete key as erase?
Then good for them! They should use stty to set the erase sequence to
be ^[[3~. Once the user has done so, however, when the user later
presses the key labeled "backspace", why should mutt be expected to
know that the key the user pressed has ink on it that says
"backspace"? It *shouldn't* be expected to, because of course it
can't. Mutt should say to itself "what key has the backspace effect?
this must be what the user is referring to when the user says
<BackSpace>, because I have no way of knowing which key on the
keyboard has 'Backspace' printed on it, or even if there is one." When
the user sets some other key as the "erase" key, that key, by
definition, becomes the backspace key. Whatever was previously
considered the backspace key is now just a generic key. No matter
what's printed on that key, no matter what position it has in the
keyboard, that's all irrelevant because the computer can't be expected
to know!
Think of it like binding keys in a video game. Your joystick may have
buttons labeled "Fire" and "Shield", but if you tell the videogame
that the "Fire" button should trigger the shield, then the button with
"Shield" printed on it is now just an arbitrary button that emits a
certain character sequence. The ink on its surface gives it no
particular claim to the title "the shield button". The button labeled
"Fire" is now the shield button. In the same way, when I set some
character sequence (such as ^[[3~) to be the "erase" sequence, I am
defining whatever key emits that sequence to be the "backspace" key,
no matter what happens to be printed on the actual buttons, because
that's the key that performs a backspace.
<BackSpace> must be defined by behavior, not by the ink printed on the
key, because of course no program can know what's printed on the key.
~Kyle
}}}
--
Ticket URL: <http://dev.mutt.org/trac/ticket/2952#comment:>