keybinding with shift key syntax. C-S-n vs C-N
  Home FAQ Contact Sign in
gnu.emacs.help only
 
Advanced search
POPULAR GROUPS

more...

gnu.emacs.help Profile…
 Up
keybinding with shift key syntax. C-S-n vs C-N         


Author: Xah
Date: Sep 15, 2008 02:59

This seems to be a bug.

i'm trying to set keybindings for both Ctrl+n and Ctrl+Shift+n, by:
(global-set-key (kbd "C-N") 'f1)
(global-set-key (kbd "C-n") 'f2)

however, that doesn't work.

Emacs will take both Ctrl+Shift+n and Ctrl+Shift+n to be whichever is
evaluated last. In this case, f2.

But the following works:

(global-set-key (kbd "C-S-n") 'f1)
(global-set-key (kbd "C-n") 'f2)

This seems to contradict with Meta's ways. That is (kbd "M-N") works
but not (kbd "M-S-n").

I filed a bug but no response. Can anyone reproduce this?

Xah
∑ http://xahlee.org/

☄
4 Comments
Re: keybinding with shift key syntax. C-S-n vs C-N         


Author: Oleksandr Gavenko
Date: Sep 15, 2008 12:44

I try all write. Same behavior
(GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600) of 2007-06-02 on RELEASE).

(global-set-key (kbd "M-S-n") 'f1) do not define key binding, but
(global-set-key (kbd "M-n") 'f2) do for both M-n and M-N.

In my research I found that C-h k M-M take line
M-k (_translated_ from M-K) runs the command kill-sentence
while C-h k M-m
M-m runs the command back-to-indentation.
no comments
Re: keybinding with shift key syntax. C-S-n vs C-N         


Author: Xah
Date: Sep 16, 2008 12:35

On Sep 15, 12:44 pm, Oleksandr Gavenko gmail.com> wrote:
> I try all write. Same behavior
> (GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600) of 2007-06-02 on RELEASE).
>
> (global-set-key (kbd "M-S-n") 'f1) do not define key binding, but
> (global-set-key (kbd "M-n") 'f2) do for both M-n and M-N.

I might have miscommunicated. I try again:

I want to define a keybinding with the Shift down. e.g. Ctrl+Shift+n.

In emacs, it appears there are 2 notations that can be used.

1. (kbd "C-S-n")
2. (kbd "C-N")

however, this does not seems to work property.

Xah
∑ http://xahlee.org/

☄

---------------------

This seems to be a bug.
Show full article (1.21Kb)
no comments
Re: keybinding with shift key syntax. C-S-n vs C-N         


Author: B. T. Raven
Date: Sep 17, 2008 08:52

Xah wrote:
> On Sep 15, 12:44 pm, Oleksandr Gavenko gmail.com> wrote:
>> I try all write. Same behavior
>> (GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600) of 2007-06-02 on RELEASE).
>>
>> (global-set-key (kbd "M-S-n") 'f1) do not define key binding, but
>> (global-set-key (kbd "M-n") 'f2) do for both M-n and M-N.
>
> I might have miscommunicated. I try again:
>
> I want to define a keybinding with the Shift down. e.g. Ctrl+Shift+n.
>
> In emacs, it appears there are 2 notations that can be used.
>
> 1. (kbd "C-S-n")
> 2. (kbd "C-N")
>
> however, this does not seems to work property.
>
> Xah ...
Show full article (1.52Kb)
no comments
Re: keybinding with shift key syntax. C-S-n vs C-N         


Author: Xah
Date: Sep 17, 2008 15:51

A emacs developer Chong Yidong replied to my bug report.

Chong wrote:

« This is a legacy of ASCII. Taking a look at an
ASCII chart, you'll see that ^A (control-a) through
^Z (control-z) map to ASCII codes 1 through 26, and these control
keys are not case sensitive: control-a is equivalent to
control-A.

Emacs extends ASCII, which allows us to define things like C-]
which are not present in ASCII. However, (kbd "C-N")
and (kbd "C-n") still both evaluate to ^N. »

I think there is still a problem, that is, inconsistency with the meta
notation.

Namely, when defining a key with Ctrl or Meta with a Shift and a
letter, when it is Meta,

(global-set-key (kbd "M-N") 'f) works
but
(global-set-key (kbd "M-S-n") 'f) does not work.

But with Ctrl, it is the the other way around.
Show full article (2.45Kb)
no comments