Utilisation des touches de fonction comme touches de modification «collantes»

10

Existe-t-il un moyen d'utiliser une touche de fonction (comme <f8>) comme une sorte d'événement de super-touche enfoncée, puis de faire en sorte que la séquence de touches suivante (p s-s. Ex.) Soit interprétée comme ? En d'autres termes, ce sera similaire aux touches de modification collantes, mais juste pour emacs, pas pour l'os lui-même.

Je connais le mode d'accords et le fait que vous pouvez utiliser des combinaisons de touches comme celle-ci (global-set-key (kbd "<f8> b t") 'undo)pour enregistrer les raccourcis clavier. Mais j'aimerais quelque chose qui fonctionne avec mes liaisons existantes à la super clé et ne nécessite pas que je lie tout deux fois à l'avenir (c'est-à-dire une liaison pour la super clé et une pour la touche de fonction).

Var87
la source

Réponses:

14

Si votre flux de travail est:

  1. appuie et relache F8
  2. Appuyez et relâchez s, attendez-vous à ce qu'il déclenche la liaison pours-s
  3. Quelle que soit la touche sur laquelle vous appuyez par la suite, elle n'a pas le smodificateur, sauf si vous appuyez à F8nouveau sur

alors cette fonctionnalité existe dans Emacs lui-même . Il est lié C-x @ spar défaut (clairement destiné uniquement à une utilisation très occasionnelle). La commande est event-apply-super-modifier(fonctions similaires existent pour control, shift, meta, altet hyper). Les liaisons par défaut sont dans function-key-map, ce qui est remplacé par les liaisons dans les images clés globales ou locales. Vous pouvez utiliser à la key-translation-mapplace si vous souhaitez que la signification du modificateur d'application soit prioritaire.

(define-key function-key-map [f8] 'event-apply-super-modifier)
Gilles 'SO- arrête d'être méchant'
la source
Encore plus de raisons d'aimer Emacs!
A. Blizzard