Martin Buchholz <martin(a)xemacs.org> writes:
>>>>> "DanH" == Dan Holmsand
<dan(a)innehallsbolaget.com> writes:
DanH> I don't know if it's a bug or a feature - but this is all because
DanH> XEmacs works differently from fsfmacs. Fortran-mode etc all define
DanH> "\e\C-h" in a local keymap, which on XEmacs overrides both
M-backspace
DanH> and C-M-h. On fsfmacs it only overrides C-M-h (the intended
DanH> behaviour).
But FSF Emacs redefines Meta+Backspace if you do
(global-set-key "\e\C-?" 'backward-char)
On my machine, it just redefines M-DEL.
so XEmacs is consistent at the _syntactic_ level. It merely
disagrees
on the name of the key labelled "BackSpace" (on my computer).
DanH> That means that you have to re-assign backward-kill-word explicitly to
DanH> M-BS if you also define C-M-h.
I vote for someone working with the package maintainers to modify the
key bindings for psgml-mode.
They can probably be (compatibly!) changed to
(define-key sgml-mode-map [(meta control h)] 'sgml-mark-current-element)
Yes, you're right (I did some testing). Three examples:
1.
(progn
(setq foo-map (make-keymap))
(define-key foo-map "\e\C-h" 'foo)
(define-key foo-map [(meta backspace)] 'backward-kill-word)
(use-local-map foo-map))
gives Local Bindings:
M-backspace backward-kill-word
M-C-h foo
in both xemacs and fsf emacs.
2.
(progn
(setq foo-map (make-keymap))
(define-key foo-map [(meta control h)] 'foo)
(use-local-map foo-map))
gives Local Bindings:
M-C-h foo
in both xemacs and fsf emacs. However...
3.
(progn
(setq foo-map (make-keymap))
(define-key foo-map "\e\C-h" 'foo)
(use-local-map foo-map))
gives Local Bindings:
M-backspace foo
M-C-h foo
in xemacs, but
ESC C-h foo
in fsf emacs.
In my opinion, this is pretty counter-intuitive (i.e. a bug) in
xemacs.
/dan
--
Dan Ola Holmsand
InnehÄllsbolaget
dan(a)innehall.com