[OS X Emacs] Keybindings question
david.reitter at gmail.com
Mon Nov 10 10:44:42 EST 2008
On 8 Nov 2008, at 16:07, Ian Eure wrote:
> As I've been using Aquamacs, if I wanted to define a global binding,
> I've been setting it in osx-key-mode-map. However, I want to make my
> customizations less dependent on any specific emacs. So I changed
> these to use (define-key (current-global-map)), and now they don't
> work when there is a local binding for that key in a mode.
> For example, I have C-c C-d bound to a custom function, but in php-
> mode, this is bound to c-hungry-delete-forward. This no longer works
> when I use (current-global-map). I tried turning off osx-key-mode,
> but that didn't change anything, either.
> How can I get the old behavior without using osx-key-mode-map?
define your own minor mode, like `ians-keys-mode', using `define-minor-
mode'. Use your own keymap variable, `ians-bindings, `ians-keys-mode-
keys', and use that as the mode keymap.
Major mode bindings override the global ones, and minor mode bindings
override everything else, if I remember correctly. My `osx-key-mode'
goes out of its way to define a "low-priority keymap" in addition to
the normal, high-priority minor mode keymap.
Your problem points out a general design flaw in Emacs: key bindings
don't have priorities. I'm cc'ing Stefan Monnier who, I believe,
wanted key priorities to be put on the "to do" list some 1-2 years ago
when I pointed out this issue. I think it's too late to introduce
such changes in Emacs 23, but perhaps this can be supported in Emacs 24.
http://aquamacs.org -- Aquamacs: Emacs on Mac OS X
http://aquamacs.org/donate -- Could we help you? Return the favor and
support the Aquamacs Project!
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2193 bytes
Desc: not available
More information about the MacOSX-Emacs