Existe-t-il un moyen de se lier C-[
à quelque chose et que toutes les M-
liaisons (méta) ne soient pas gâchées?
Ce n'est pas la première fois que cette question se pose. Malheureusement, la seule solution proposée dans le fil précédent est a) spécifique à Linux, b) nécessite un outil externe (à nouveau spécifique à Linux) qui n'a rien à voir avec Emacs. Dans la même veine, j'aurais pu utiliser quelque chose comme Karabiner sur un OS X pour voler la C-[
séquence avant qu'Emacs ne l'obtienne, mais c'est maladroit et cher.
Étant donné que c'est Emacs qui insiste pour traduire C-[
vers ESC
, C-i
vers TAB
et probablement vers d'autres, j'aimerais beaucoup rompre ces relations et récupérer de précieuses séquences clés. Récemment , je courais pleine vitesse sur ce problème et blâmée calme innocents smartparens le mode.
Une solution possible qui a impliqué function-key-map
et a key-translation-map
été discutée ici, mais hélas, elle ne fonctionne plus ou n'a pas fonctionné en premier lieu (ou je fais quelque chose de mal). Je pense que cela allait dans la bonne direction.
la source
C-[
enESC
". Les deux sont la même chose . De même,C-i
etTAB
sont des noms différents pour le même code de contrôle ASCII.C-[
(appuyezCtrl
et appuyez[
) sur le caractère deC-[
contrôle (alias le personnage), mais non, cela n'est pas obligatoire pour quelqu'un qui conçoit un éditeur. Et oui, Emacs fait ça. et sont le même caractère, mais les touches + et n'ont pas besoin d'être mappées à des caractères particuliers.ESC
C-[
ESC
Ctrl
[
Esc
Réponses:
Adapté de ma propre configuration :
Cela ne fonctionnera évidemment que dans l'interface graphique.
edit: Notez que le
input-decode-map
terminal est local, ce qui signifie que sa modification ne fonctionnera pas si vous utilisezemacsclient
, mais le fera si vous utilisezemacs
. J'ai résolu le problème dans ma configuration en l'enveloppant dans une commande opérant sur un cadre et en l'ajoutant auafter-make-frame-functions
crochet.la source
<C-i>
et<C-[>
lié àTAB
etESC
dans la carte globale comme vous le suggérez dans votre configuration, flat out plante mon Emacs chaque fois que je les frappe: