Existe-t-il un moyen, via une commande qui peut être invoquée par le clavier, de faire croire à Emacs que j'ai cliqué à un point particulier (pour qu'il fasse ce qu'il aurait fait si j'avais cliqué là-bas, par exemple suivre le lien ou faire apparaître un menu )? Ou que j'ai survolé la souris au point (pour que l'infobulle apparaisse)?
[Motivation: certains modes décorent le tampon, transformant du texte en liens, etc. Je sais peut-être comment faire quelque chose avec la souris (par exemple, cliquez dessus), mais pas le raccourci clavier / la commande équivalente à invoquer. Bien sûr, je devrais lire la documentation du mode et l'apprendre, mais j'ai pensé que c'était une question intéressante.]
key-bindings
mouse
ShreevatsaR
la source
la source
Réponses:
Souvent, naviguer vers un emplacement et appuyer sur une touche aura le même effet que de cliquer sur cet emplacement. Il n'y a pas de mécanisme intégré qui assure cela, c'est juste que les modes sont généralement écrits de cette façon.
Vous pouvez générer des événements de souris ( clic , double / triple /… clic , bouton bas / haut , glisser , mouvement ). Tous les événements de souris ont la forme
(TYPE POSITION . EXTRA-DATA)
où TYPE est un symbole qui code le bouton de la souris, la nature de l'action (clic, glisser, etc.) et les modificateurs. TYPE estmouse-movement
pour un événement de mouvement. Appelezposn-at-point
pour générer la POSITION pour l'emplacement du point dans le tampon actuel.Voici un code de preuve de concept qui simule un clic de souris à la position du curseur lorsque vous appuyez,
f11
suivi d'un chiffre. Les modificateurs sont pris en compte.La simulation du vol stationnaire semble plus difficile.
la source
C-c C-, RET
, mais je a dû consulter la documentation du mode pour cela).f11 1
ne fait pas cela (il imprime quelque chose dans le mini-tampon mais ce n'est pas l'équivalent d'un clic de souris sur le lien) maisf11 3
semble être équivalent à<mouse-3>
et ainsi de suite.down-mouse-1
ou nonmouse-1
? Comment savoir dans quelle mappe de clé une clé est liée? peut aider à enquêter sur cela.