[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: The correspondence of the command-name and its key-sequence.
From: |
Omar Polo |
Subject: |
Re: The correspondence of the command-name and its key-sequence. |
Date: |
Sat, 09 Jan 2021 09:23:29 +0100 |
User-agent: |
mu4e 1.4.13; emacs 28.0.50 |
Hongyi Zhao <hongyi.zhao@gmail.com> writes:
> On Sat, Jan 9, 2021 at 2:34 PM Drew Adams <drew.adams@oracle.com> wrote:
>>
>> > But, it's still very hard for me to understand the correspondence of
>> > the command-name and its key-sequence. To summarize, why use C-g to
>> > represent the command keyboard-quit, instead of other more directly
>> > related forms, say, C-q.
>>
>> I think you're asking why `C-g' is used for quitting/canceling an action,
>> instead of, for example `C-q' (since `q' is mnemonic for "quit").
>
> That's exactly what I mean.
q is also a mnemonic for "quote" which, given the lisp background, seems
appropriate ;)
C-h C-q
> C-q runs the command quoted-insert [...]
>> [.. lots of interesting information about the bell characters ..]
>>
>> "For example, the character or "G", whose ASCII code is 71 in base 10, or
>> 100 0111 in binary, would be transformed into the binary code 000 0111 (7 in
>> decimal), which is assigned to the bell character."
>
> I find another may be far-fetched relation based on your above
> notes/hints/comments:
>
> werner@X10DAi:~$ printf "%d %x\n" "'q" "'q"
> 113 71
> werner@X10DAi:~$ printf "%d %x\n" "'G" "'G"
> 71 47
>
> As you can see, the hexadecimal point code of "q" is the same as the
> decimal point code of "G" in form.
>
> BR,
You shouldn't mix the hexadecimal and decimal representation of the
characters. The ASCII characters 0x01-0x1a (inclusive), i.e. the
characters in the range 1-26 (decimal), are the ctrl- variant of the A-Z
ASCII characters (0x41-0x5a).
I don't remember if the following is right, so please correct me if I'm
wrong, but the keyboards (the old ones I mean) when pressing the ctrl-
key along with a letter would apply a bitmask on that key. If you look
at this wikipedia page[0], you'll see that the ASCII character 0x01
"Start of Heading" is mapped to C-a. Now, if you look at the byte
representation of the 'A' character in ASCII it is
4 1 (decimal)
0010 0001 (hexadecimal)
and that SOH is
0 1 (decimal)
0000 0001 (hexadecimal)
and so on, B is mapped to to STX, C to ETX, ... G to the BELL character,
... I to the hard tab.
So it seems that CTRL(key) is (key & 0xDF). (Again, correct me if I'm
wrong. I recall reading something like this time ago, but I couldn't
find the source now)
Now, exactly why C-g was chosen for to the keyboard-quit, is something I
don't know, but the fact that by default it produces a BELL character
(on ttys at least) may be a hint.
[0]:https://en.wikipedia.org/wiki/C0_and_C1_control_codes#Basic_ASCII_control_codes
- The correspondence of the command-name and its key-sequence., Hongyi Zhao, 2021/01/09
- RE: The correspondence of the command-name and its key-sequence., Drew Adams, 2021/01/09
- Re: The correspondence of the command-name and its key-sequence., Hongyi Zhao, 2021/01/09
- Re: The correspondence of the command-name and its key-sequence.,
Omar Polo <=
- Re: The correspondence of the command-name and its key-sequence., Hongyi Zhao, 2021/01/09
- Re: The correspondence of the command-name and its key-sequence., Omar Polo, 2021/01/09
- Re: The correspondence of the command-name and its key-sequence., Hongyi Zhao, 2021/01/11
- Re: The correspondence of the command-name and its key-sequence., Omar Polo, 2021/01/11
- Re: The correspondence of the command-name and its key-sequence., tomas, 2021/01/11
- Re: The correspondence of the command-name and its key-sequence., Francis Belliveau, 2021/01/09
- Re: ASCII - Why...? -- as promised., Francis Belliveau, 2021/01/14
- RE: The correspondence of the command-name and its key-sequence., Drew Adams, 2021/01/09
Re: The correspondence of the command-name and its key-sequence., Kévin Le Gouguec, 2021/01/09