OS XのEmacsで<s-mouse-1>を<mouse-2>に再バインド


8

私はMacBook Proを使用しているため、ボタンが1つあるトラックパッドを使用しています。私は、当然のことながら、行うことができますmouse-1クリックしてとmouse-32本の指でクリックすることで、ずっと私は中クリック(についてできることはありませんmouse-2)。

これが以前に私に噛み付かなかったことに驚いていますが、最近、マウスの中ボタンがないことに悩まされ始めました。具体的には、私が使用し始めましたERCflyspellミドルクリックを必要とする機能を持っているどちらも、。

私は広範囲にグーグルで調べましたが、これを行う方法を見つけることができませんでした。これが正確に私がしたいことです:

Emacsでは、Emacsがであるかのように表示command+mouse-1する必要がありmouse-2ます。基本的に、イベント<s-mouse-1>をトリガーするために再バインドする方法が欲しいの<mouse-2>ですが。これは可能ですか?

まったく役立つ場合は、Cocoa EmacsのEmacs 24ビルドの1つを使用しており、Lionを'08時代のmacbook proで実行しています。

回答:


5

これを試して:

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

詳細については、翻訳キーマップをご覧ください。


2
これを実行して、flyspellにcmd-clickを使用しようとすると、次のエラーメッセージが表示されます。flyspell-correct-wordは、パラメーターを使用してイベントにバインドする必要があります。助言がありますか?
アレックスR

1
奇妙なことに、同じエラーメッセージが表示されました。:しかし私のために、次の作品(global-set-key [M-down-mouse-1] 'flyspell-correct-word)
edwardw

0

トレイの提案は私にはうまくいきませんでしたが、これはうまくいきました:

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

これは、control-左クリックを中央クリックにマップします(このdown-部分は私には機能しませんでした)。

Alex Rへの注意:C-...コマンドではなく、control-(小文字s-...)です。


0

これは回避策としてのソリューションではありませんが、私は現在(オープンソース)MiddleClickアプリ試しています。このアプリは、3本指を押すとミドルクリックをトリガーすることで、システム全体にミドルクリック機能を追加します。タップします。

唯一の問題は、トラックパッドの3本の指を時々タッチすることにより、中マウスボタンを誤って押してしまう可能性があることです。また、対応するスクロール動作を十分に発音させない場合、3本指タップと競合する可能性のあるシステムトラックパッドバインディング(App ExposeまたはなどMission Control)もあります。実行中のアプリ自体には設定がないように見えるため、ソースを微調整することでこれらの競合を修正することができます。

ミドルクリックは自作でもインストールできます:

brew cask install middleclick

編集:

少なくとも私にとって、MiddleClickの3本指タップの動作はかなり煩わしく、使用できないことがわかりました。また、MiddleClick MultitouchSupport.frameworkはプライベートであり、その関数のパラメーターを理解するためにリバースエンジニアリングを必要とするため、MiddleClickはを使用するため、ソースをより良い動作に変更しようとすると、それよりも問題が多いことが判明しました。残念ながら、今はそのための時間はありません。とても基本的なものの上に。しかし、私が見つけたBetterTouchTool同じ基本的な機能を実装していますが、提供してはるかに多くのカスタマイズを。無料ではありませんが、たったの$ 3で、Magic Trackpad 2でも問題なく機能します。これは、私が試した同様のアプリ、MagicPrefsには当てはまりません。

BetterTouchToolは、homebrewからもインストールできます。

brew cask info bettertouchtool
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.