Simon Josefsson <simon(a)josefsson.org> writes:
FWIW, I think \M-\C-h work fine (at least in Gnus and VHDL mode),
it's \e\C-h that's failing.
Really? I've just tried (local-set-key "\M-\C-h" 'foo) in my message
buffer, and pressing M-backspace says "Symbol's function definition is
void: foo".
Also, if occurances of \e\C-h are being changed into \M-\C-h en
masse, perhaps it should be stated that that \e\C-h does not work in
the documentation. Or perhaps fix the problem.
As I said, both should be changed to [(control meta h)]. This feature
(*not* a problem or a bug!) is already documented. Just take a look
at the docs of `define-key':
For backward compatibility, a key sequence may also be represented by a
string. In this case, it represents the key sequence(s) that would
produce that sequence of ASCII characters in a purely ASCII world. For
example, a string containing the ASCII backspace character, "\^H", would
represent two key sequences: `(control h)' and `backspace'. Binding a
command to this will actually bind both of those key sequences. Likewise
for the following pairs:
control h backspace
control i tab
control m return
control j linefeed
control [ escape
control @ control space
After binding a command to two key sequences with a form like
(define-key global-map "\^X\^I" 'command-1)
it is possible to redefine only one of those sequences like so:
(define-key global-map [(control x) (control i)] 'command-2)
(define-key global-map [(control x) tab] 'command-3)