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

Code claviers des fleches dans un xterm

4 réponses
Avatar
Francois Maltey
Bonjour,

J'utilise emacs dans un terminal de gnome pour avoir le lissage
des caract=C3=A8res au tiers de pixel. C'est bien plus joli.

Dans ce terminal j'ai bien acc=C3=A8s aux caract=C3=A8res accentu=C3=A9s, a=
ux
touches <<controle>>, <<alt>> pour <<meta>>, et <<altgr>>.

Je veux donner un r=C3=B4le particulier aux commandes=20
[C-return], [C-left], [C-right] et co.

...
(define-key map [(control return)] (function ma-fonction-return))
(define-key map [(control left)] (function ma-fonction-left))
...
fonctionne correctement dans un emacs sous x11 mais ne fonctionne
pas dans un emacs -nw.=20

J'ai du mettre ces define-key pour faire marcher=20
(control return) et (control left)

(define-key map [(control j)] (function ma-fonction-return))
(define-key map "\eO5D" (function ma-fonction-left))

Mais ce n'est pas standard et =C3=A7a ne marche pas dans n'importe quel ema=
cs.

Comment faire pour reconnaitre un control dans ce terminal x11 ?

Bien cordialement.

Francois

4 réponses

Avatar
Florent Georges
Francois Maltey wrote:

J'ai du mettre ces define-key pour faire marcher
(control return) et (control left)

(define-key map [(control j)] (function ma-fonction-return))
(define-key map "eO5D" (function ma-fonction-left))

Mais ce n'est pas standard et ça ne marche pas dans n'importe quel emac s.



As-tu essaye (kbd "C-<left>") et (kbd "C-<return>") ?

--drkm
Avatar
Francois Maltey
(Re)bonjour,

Dans ce terminal j'ai bien accès aux caractères accentués, aux
touches <<controle>>, <<alt>> pour <<meta>>, et <<altgr>>.

Je veux donner un rôle particulier aux commandes
[C-return], [C-left], [C-right] et co.

...
(define-key map [(control return)] (function ma-fonction-return))
(define-key map [(control left)] (function ma-fonction-left))
...
fonctionne correctement dans un emacs sous x11 mais ne fonctionne
pas dans un emacs -nw.



Normal le code reçu par emacs est donné par (read-key-sequence-ve ctor)

Il faut demander à emacs de le transformer en C-right et co.

(define-key function-key-map "eO5C" [C-right])
(define-key function-key-map "eO5D" [C-left])
(define-key function-key-map [10] [C-return]))

Ce que j'ai mis dans mon .emacs.

Ceci marche bien pour les 2 premiers car ces séquences de codes ne son t
dans aucun keymap,

MAIS ça ne marche pas dans le troisième cas car le code ^J est
déja pris par une commande newline-and-indent.

Comment effacer cette commande du global-map pour que le code ^J corresponde
à [C-return].

Je joue aussi avec la fonction kbd...

Cordialement.
Avatar
Pascal Bourguignon
Francois Maltey writes:
Comment effacer cette commande du global-map pour que le code ^J corresponde
à [C-return].



Si ton clavier est blanc, tu prend un feutre noir,
si ton clavier est noir, tu prend un stipex blanc,

puis tu ajoute en trait fin et délicat sur la touche RETURN: "C-".

--
__Pascal Bourguignon__ http://www.informatimago.com/

Pour moi, la grande question n'a jamais été: «Qui suis-je? Où vais-je?»
comme l'a formulé si adroitement notre ami Pascal, mais plutôt:
«Comment vais-je m'en tirer?» -- Jean Yanne
Avatar
Francois Maltey
Bonjour,

> Comment effacer cette commande du global-map pour que le code ^J
> corresponde à [C-return].

Si ton clavier est blanc, tu prend un feutre noir,
si ton clavier est noir, tu prend un stipex blanc,

puis tu ajoute en trait fin et délicat sur la touche RETURN: "C-".



(global-unset-key [10])
(define-key function-key-map [10] [C-return])

Est plus sérieux !