Relier <s-mouse-1> à <mouse-2> dans Emacs sur OS X

8

J'utilise un macbook pro et suis donc soumis à un trackpad avec un seul bouton. Je peux, bien sûr, le faire mouse-1en cliquant et mouse-3en cliquant avec deux doigts, mais je ne peux pas faire grand-chose pour un clic du milieu ( mouse-2).

Je suis surpris que cela ne m'ait pas mordu auparavant, mais je n'ai commencé que récemment à être ennuyé par l'absence d'un bouton central de la souris. En particulier, j'ai commencé à utiliser ERCet flyspell, qui ont tous deux des fonctions qui nécessitent un clic central.

J'ai fait des recherches approfondies sur Google, mais je n'ai pas réussi à trouver un moyen de le faire. Voici précisément ce que j'aimerais faire:

Dans Emacs, j'aimerais qu'Emacs regarde command+mouse-1comme si c'était le cas mouse-2. En gros, j'aimerais un moyen de se relier <s-mouse-1>pour déclencher un <mouse-2>événement. Est-ce possible?

Si cela peut être utile, j'utilise l'une des versions Emacs 24 de Cocoa Emacs et j'exécute Lion sur un macbook pro de l'ère '08.

Rayne
la source

Réponses:

5

Essaye ça:

(define-key key-translation-map (kbd "<C-down-mouse-1>") (kbd "<down-mouse-2>"))

Pour plus d'informations, consultez la section Clés de traduction .

Trey Jackson
la source
2
Lorsque je fais cela et que j'essaie ensuite d'utiliser un cmd-click pour flyspell, il se plaint du message d'erreur suivant: flyspell-correct-word doit être lié à un événement avec des paramètres. Aucune suggestion?
Alex R
1
Bizarre, j'ai vu le même message d'erreur. Ce qui suit fonctionne pour moi cependant:(global-set-key [M-down-mouse-1] 'flyspell-correct-word)
edwardw
0

La suggestion de Trey n'a pas fonctionné pour moi, mais cela a:

(define-key key-translation-map (kbd "<C-mouse-1>") (kbd "<mouse-2>"))

Cela mappe le contrôle-clic gauche au clic milieu (la down-pièce n'a pas fonctionné pour moi).

Note à Alex R: C-...est control-, pas command- (qui est en minuscule s-...)

Sean Corfield
la source
0

Ce n'est pas tant une solution qu'une solution de contournement, mais j'essaie actuellement l'application (open source) MiddleClick qui ajoute une fonctionnalité de clic central dans tout le système en déclenchant un clic du milieu lorsque vous faites un trio. robinet.

Le seul problème est que vous pouvez appuyer accidentellement sur le clic du milieu en touchant de temps en temps trois doigts sur le trackpad, ce qui est quelque peu ennuyeux. Il y a aussi évidemment les liaisons du pavé tactile du système (par exemple, App Exposeou Mission Control) qui peuvent entrer en conflit avec le toucher à trois doigts si vous ne faites pas le mouvement de défilement correspondant assez prononcé. Vous pouvez probablement résoudre ces conflits en modifiant les sources, car il semble qu'il n'y ait pas de paramètres dans l'application en cours d'exécution elle-même.

Vous pouvez également installer MiddleClick via homebrew:

brew cask install middleclick

ÉDITER:

Il s'avère que le comportement à trois doigts de MiddleClick est plutôt ennuyeux et inutilisable, du moins pour moi. De plus, essayer de modifier les sources pour un meilleur comportement s'est avéré être plus problématique que cela en vaut la peine, car MiddleClick en utilise MultitouchSupport.framework, qui est privé et nécessite une ingénierie inverse pour comprendre les paramètres de ses fonctions. Malheureusement, je n'ai pas le temps pour ça en ce moment, surtout. sur quelque chose de si basique. Cependant, j'ai trouvé BetterTouchTool qui implémente les mêmes fonctionnalités de base mais offre beaucoup plus de personnalisation. Ce n'est pas gratuit, mais c'est seulement 3 $ et en plus cela fonctionne très bien avec le Magic Trackpad 2, ce qui ne peut pas être dit pour l'application similaire que j'ai également essayée, MagicPrefs.

BetterTouchTool peut également être installé via homebrew:

brew cask info bettertouchtool
PIB2
la source