在OS X上的Emacs中将<s-mouse-1>重新绑定到<mouse-2>


8

我使用的是Macbook Pro,因此只能使用一个按钮来控制触控板。当然,我可以mouse-1通过单击并mouse-3用两根手指单击来完成操作,但是对于中键(mouse-2)我无能为力。

令我感到惊讶的是,之前从未有过这种感觉,但是直到最近我才开始因为缺少鼠标中键而感到恼火。特别是,我已经开始使用ERCflyspell,两者都具有需要单击鼠标中键的功能。

我已经在Google上进行了广泛的搜索,但是还没有找到一种方法来做到这一点。这正是我想做的:

在Emacs中,我希望Emacs能够将其command+mouse-1视为mouse-2。基本上,我想要一种重新绑定<s-mouse-1>以触​​发<mouse-2>事件的方法。这可能吗?

如果有帮助的话,我使用的是可可Emacs的Emacs 24版本之一,并且在'08时代的Macbook Pro上运行Lion。

Answers:


5

尝试这个:

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

有关更多信息,请阅读Translation Keymaps


2
当我这样做时,然后尝试对cmd-click使用flyspell,它抱怨并显示以下错误消息:flyspell-correct-word必须绑定到带有参数的事件。有什么建议么?
亚历克斯R

1
很奇怪,我看到了相同的错误消息。不过,以下内容对我(global-set-key [M-down-mouse-1] 'flyspell-correct-word)
有用

0

Trey的建议对我不起作用,但确实如此:

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

这会将控制左键单击映射到中键单击(该down-部分对我不起作用)。

请注意Alex R:C-...是control-而不是command-(是小写s-...


0

这并不是解决问题的方法,但我目前正在尝试使用(开源)MiddleClick应用程序,该应用程序通过在执行三指操作时触发中键单击来在整个系统中添加中键单击功能。点击。

唯一的问题是,您可以不时地通过触摸触控板上的三个手指来意外地按下中键,这确实有些烦人。如果您未使相应的滚动动作发音足够明显,显然还有一些系统触控板绑定(例如App ExposeMission Control)可能会与三指点击发生冲突。您可能可以通过调整源代码来解决这些冲突,因为正在运行的应用程序本身似乎没有任何设置。

您也可以通过自制软件安装MiddleClick:

brew cask install middleclick

编辑:

事实证明,至少对我而言,MiddleClick的三指点击行为相当烦人且无法使用。另外,尝试修改源以实现更好的行为比它值得的麻烦多,因为MiddleClick使用了MultitouchSupport.framework,这是私有的,需要进行反向工程才能理解其功能的参数。不幸的是,我现在没有时间这样做,特别是。如此基本的东西。但是,我确实找到了BetterTouchTool,它实现了相同的基本功能,但提供更多的可定制性。它不是免费的,但只有3美元,而且它在Magic Trackpad 2上也能正常工作,对于我也尝试过的类似应用程序MagicPrefs来说,这不能说是不错的选择。

BetterTouchTool也可以通过自制程序安装:

brew cask info bettertouchtool
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.