--- Begin Message ---
Subject: |
some files bind to global-map "C-x" instead of ctl-x-map |
Date: |
Fri, 20 Jan 2012 21:23:42 +0900 (JST) |
Hi, Emacs developers.
In recent versions of emacs - at least in 23.3.3 and 24.0.92 -
some files do
(define-key global-map "\C-x\C-j" 'some-command)
but it has to be
(define-key ctl-x-map "\C-j" 'some-command)
If you bind "C-x" to non-keymap, you'll receive an error.
I've searched for "define-key.*global.*C-x" with the tool "ack" (it's
like grep) in emacs-24.0.92/lisp/, and all hits are:
------------------------------------------------------------------------
obsolete/iso-insert.el:624: (define-key global-map "\C-x8" 8859-1-map))
dired-x.el:88: (define-key global-map "\C-x\C-j" 'dired-jump)
dired-x.el:89: (define-key global-map "\C-x4\C-j"
'dired-jump-other-window))
dired-x.el:91: (define-key global-map "\C-x\C-j" nil))
dired-x.el:93: (define-key global-map "\C-x4\C-j" nil))))
vc/vc-hooks.el:944:(define-key global-map "\C-xv" 'vc-prefix-map)
------------------------------------------------------------------------
There's also lookup-key, but I don't know how to fix some of them.
All occurrences are:
------------------------------------------------------------------------
eshell/em-term.el:221:; (lookup-key (current-global-map) "\C-x"))
eshell/em-term.el:244:; (copy-keymap (lookup-key (current-global-map)
"\C-x")))
term.el:911: (copy-keymap (lookup-key (current-global-map) "\C-x")))
term.el:3484: (lookup-key (current-global-map) "\C-x"))
obsolete/iso-insert.el:623: (if (not (lookup-key global-map "\C-x8"))
dired-x.el:90: (if (eq 'dired-jump (lookup-key global-map "\C-x\C-j"))
dired-x.el:92: (if (eq 'dired-jump-other-window (lookup-key
global-map "\C-x4\C-j"))
------------------------------------------------------------------------
Thank you very much for developing Emacs.
Sincerely,
Teika (Teika kazura)
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#10566: some files bind to global-map "C-x" instead of ctl-x-map |
Date: |
Wed, 25 Jan 2012 21:37:58 -0500 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Version: 24.0.93
Teika Kazura wrote:
> In recent versions of emacs - at least in 23.3.3 and 24.0.92 -
Since always probably (at least 21.1).
> some files do
> (define-key global-map "\C-x\C-j" 'some-command)
> but it has to be
> (define-key ctl-x-map "\C-j" 'some-command)
> If you bind "C-x" to non-keymap, you'll receive an error.
Thanks for the report.
> obsolete/iso-insert.el:624: (define-key global-map "\C-x8" 8859-1-map))
Let's not worry about obsolete things (one more reason to remove it).
> dired-x.el:88: (define-key global-map "\C-x\C-j" 'dired-jump)
> dired-x.el:89: (define-key global-map "\C-x4\C-j"
> 'dired-jump-other-window))
> dired-x.el:91: (define-key global-map "\C-x\C-j" nil))
> dired-x.el:93: (define-key global-map "\C-x4\C-j" nil))))
Fixed.
> vc/vc-hooks.el:944:(define-key global-map "\C-xv" 'vc-prefix-map)
I don't think this matters, since it is preloaded, so it's impossible to
change the C-x mapping before this point, but I changed it anyway.
> eshell/em-term.el:221:; (lookup-key (current-global-map) "\C-x"))
> eshell/em-term.el:244:; (copy-keymap (lookup-key (current-global-map)
> "\C-x")))
Let's not worry about code that has never been uncommented.
> term.el:911: (copy-keymap (lookup-key (current-global-map) "\C-x")))
Changed.
> term.el:3484: (lookup-key (current-global-map) "\C-x"))
I think it is appropriate to leave this as-is.
> obsolete/iso-insert.el:623: (if (not (lookup-key global-map "\C-x8"))
Obsolete, ignoring.
> dired-x.el:90: (if (eq 'dired-jump (lookup-key global-map
> "\C-x\C-j"))
> dired-x.el:92: (if (eq 'dired-jump-other-window (lookup-key
> global-map "\C-x4\C-j"))
Fixed.
--- End Message ---