use correct vector/list syntax for keybindings?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

use correct vector/list syntax for keybindings?

Robert Pluim
In  "(emacs) Init Rebinding", it says

    If a vector element is a character, write it
    as a Lisp character constant: ‘?’ followed by the character as it would
    appear in a string.

There are a fair few bindings in the emacs source that forget the '?'
and do eg

    [(control c)]

Is it worth going through and changing those?

Robert

Reply | Threaded
Open this post in threaded view
|

Re: use correct vector/list syntax for keybindings?

Andreas Schwab-2
On Nov 05 2019, Robert Pluim wrote:

> In  "(emacs) Init Rebinding", it says
>
>     If a vector element is a character, write it
>     as a Lisp character constant: ‘?’ followed by the character as it would
>     appear in a string.
>
> There are a fair few bindings in the emacs source that forget the '?'
> and do eg
>
>     [(control c)]
>
> Is it worth going through and changing those?

This is not the syntax the text above is talking about.  It is a vector
of Lucid-style event type lists, where the characters can be written as
symbols (see event-convert-list).  It is supported for XEmacs
compatibility.

Andreas.

--
Andreas Schwab, [hidden email]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

Reply | Threaded
Open this post in threaded view
|

Re: use correct vector/list syntax for keybindings?

Robert Pluim
>>>>> On Tue, 05 Nov 2019 14:25:18 +0100, Andreas Schwab <[hidden email]> said:

    Andreas> On Nov 05 2019, Robert Pluim wrote:
    >> In  "(emacs) Init Rebinding", it says
    >>
    >> If a vector element is a character, write it
    >> as a Lisp character constant: ‘?’ followed by the character as it would
    >> appear in a string.
    >>
    >> There are a fair few bindings in the emacs source that forget the '?'
    >> and do eg
    >>
    >> [(control c)]
    >>
    >> Is it worth going through and changing those?

    Andreas> This is not the syntax the text above is talking about.  It is a vector
    Andreas> of Lucid-style event type lists, where the characters can be written as
    Andreas> symbols (see event-convert-list).  It is supported for XEmacs
    Andreas> compatibility.

The elisp manual makes it clear that the intended syntax for single
characters is the same in both cases. In "(elisp) Changing Key
Bindings":

       The key definition and lookup functions accept an alternate syntax
    for event types in a key sequence that is a vector: you can use a list
    containing modifier names plus one base event (a character or function
    key name).  For example, ‘(control ?a)’ is equivalent to ‘?\C-a’ and
    ‘(hyper control left)’ is equivalent to ‘C-H-left’.

Robert

Reply | Threaded
Open this post in threaded view
|

Re: use correct vector/list syntax for keybindings?

Andreas Schwab-2
On Nov 05 2019, Robert Pluim wrote:

> The elisp manual makes it clear that the intended syntax for single
> characters is the same in both cases. In "(elisp) Changing Key
> Bindings":

The support for base characters written as symbols is present almost
since the beginning.

Andreas.

--
Andreas Schwab, [hidden email]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."