Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

remapper des touches globalement (isearch compris)

6 réponses
Avatar
Vincent Lefevre
Bonjour,

Comment remapper des touches globalement, interactive-search compris?

En gros, je voudrais pouvoir utiliser le pavé numérique dans un
interactive-search (C-s).

J'ai actuellement:

(define-key global-map [kp-1] "1")

si bien que normalement C-h k [kp-1] donne:

<kp-1> runs the command "1", which is a keyboard macro.

Mais ce n'est pas pris en compte dans un interactive search,
où C-h k [kp-1] donne:

<kp-1> runs the command isearch-other-control-char, which is an alias
for `isearch-other-meta-char' in `isearch.el'.

--
Vincent Lefèvre <vincent@vinc17.net> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)

6 réponses

Avatar
Pascal J. Bourguignon
Vincent Lefevre writes:

Bonjour,

Comment remapper des touches globalement, interactive-search compris?

En gros, je voudrais pouvoir utiliser le pavé numérique dans un
interactive-search (C-s).

J'ai actuellement:

(define-key global-map [kp-1] "1")



J'aurais plutôt fait ça avec keyboard-translate.

(keyboard-translate (kbd "<kp-1>") (kbd "1"))


--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
Avatar
Vincent Lefevre
Dans l'article ,
Pascal J. Bourguignon écrit:

Vincent Lefevre writes:

> Bonjour,
>
> Comment remapper des touches globalement, interactive-search compris?
>
> En gros, je voudrais pouvoir utiliser le pavé numérique dans un
> interactive-search (C-s).
>
> J'ai actuellement:
>
> (define-key global-map [kp-1] "1")

J'aurais plutôt fait ça avec keyboard-translate.

(keyboard-translate (kbd "<kp-1>") (kbd "1"))



Ça ne marche pas: j'obtiens une erreur

Wrong type argument: integerp, [kp-1]

--
Vincent Lefèvre - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)
Avatar
Lucas Levrel
Le 11 décembre 2010, Vincent Lefevre a écrit :

Dans l'article ,
Pascal J. Bourguignon écrit:

Vincent Lefevre writes:



(define-key global-map [kp-1] "1")





(keyboard-translate (kbd "<kp-1>") (kbd "1"))



Ça ne marche pas: j'obtiens une erreur

Wrong type argument: integerp, [kp-1]



Pascal a mis des < >, pas des [ ]. (Au cas où tu n'aies pas vu, ce que le
message d'erreur me laisse penser.)

--
LL
Avatar
Pascal J. Bourguignon
Lucas Levrel writes:

Le 11 décembre 2010, Vincent Lefevre a écrit :

Dans l'article ,
Pascal J. Bourguignon écrit:

Vincent Lefevre writes:



(define-key global-map [kp-1] "1")





(keyboard-translate (kbd "<kp-1>") (kbd "1"))



Ça ne marche pas: j'obtiens une erreur

Wrong type argument: integerp, [kp-1]



Pascal a mis des < >, pas des [ ]. (Au cas où tu n'aies pas vu, ce que
le message d'erreur me laisse penser.)



Oui, mais ça n'est pas le problème. Il semble que (kbd "<xyz>") soit
systématiquement converti en le vecteur [xyz] quand xyz n'est pas connu,
d'une part, et d'autre part, keyboard-translate veut un keycode
numérique. Il faut donc savoir quel keycode est produit par kp-1.
Comme je n'ai pas de pavé numérique, et que ça dépend de son xmodmap
(sur X), je n'en sais rien, mais l'OP peut le déterminer lui-même.

--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
Avatar
Vincent Lefevre
Dans l'article ,
Lucas Levrel écrit:

Le 11 décembre 2010, Vincent Lefevre a écrit :

> Dans l'article ,
> Pascal J. Bourguignon écrit:
>
>> Vincent Lefevre writes:
>
>>> (define-key global-map [kp-1] "1")
>
>> (keyboard-translate (kbd "<kp-1>") (kbd "1"))
>
> Ça ne marche pas: j'obtiens une erreur
>
> Wrong type argument: integerp, [kp-1]

Pascal a mis des < >, pas des [ ]. (Au cas où tu n'aies pas vu, ce que le
message d'erreur me laisse penser.)



J'avais fait un copy-paste de la commande de Pascal.

--
Vincent Lefèvre - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)
Avatar
Vincent Lefevre
Dans l'article ,
Pascal J. Bourguignon écrit:

Oui, mais ça n'est pas le problème. Il semble que (kbd "<xyz>") soit
systématiquement converti en le vecteur [xyz] quand xyz n'est pas connu,



Ici kp-1 est connu:

<kp-1> runs the command "1"
which is a keyboard macro.
It is bound to <kp-1>.

Macro: 1

Keyboard macro.

d'une part, et d'autre part, keyboard-translate veut un keycode
numérique. Il faut donc savoir quel keycode est produit par kp-1.
Comme je n'ai pas de pavé numérique, et que ça dépend de son xmodmap
(sur X), je n'en sais rien, mais l'OP peut le déterminer lui-même.



Je ne veux pas toucher aux keycodes, qui dépendent du serveur X
(je lance Emacs souvent via SSH).

--
Vincent Lefèvre - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)