MacBookトラックパッドからマウス2イベントを生成する


7

Mac OS X 10.11.3(15D21)を搭載したMacBookにEmacs.appバージョン24.5(9.0)をインストールしています。MacBookのトラックパッドからマウス2を生成するにはどうすればよいですか?私はググってmac-emulate-three-button-mouseこの質問)への参照を見つけました(そのようなEmacsバージョンには見つかりません)と機能しない同様のトリック。

そのようなイベントを生成することは可能ですか、またはs- <mouse-1>などのグローバルなものを<mouse-2>にバインドするなどの他の方法がありますか?

回答:


4

また、flyspellにmouse-3コンテキストメニューに適したものを使用するように指示することもできます。

(eval-after-load "flyspell"
    '(progn
       (define-key flyspell-mouse-map [down-mouse-3] #'flyspell-correct-word)
       (define-key flyspell-mouse-map [mouse-3] #'undefined)))

ここから盗まれ答え


これは素晴らしい!私はflyspell.el.gzを毎回変更してきましたが、更新するたびに失われます。
Joshua Olson

4

さらにグーグルでマニュアルを読んだ後~/.emacs.d/init.el、次の行をファイルに追加することで、自分に役立つ解決策を見つけました。

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

このようにmouse-2して、トラックパッドでクリックするときにコマンドを押してイベントを生成できます。

key-translation-map「... 変換キーマップを使用して特定のイベントシーケンスを他のシーケンスに変換する」変換キーマップ(マニュアルを参照)です。


残念ながら、これは私にはうまくいきません。s-mouse-1を使用しようとすると、「flyspell-correct-wordはパラメーターを指定してイベントにバインドする必要があります」のようなメッセージが表示されます
killdash9

ブライアン・アッシュの答えはほとんどの人にとって正しい答えだと思います。
Joshua Olson

2

SuperUserでの私の回答からのコピー

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

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

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

brew cask install middleclick

編集:

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

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

brew cask info bettertouchtool

1

私はbryan-ashの回答を、のマジックマウスバインディングをカスタマイズするのではadd-hookなく、関数を使用するように調整しeval-after-loadましたflyspell

  1. 以下のelispコードを.emacsファイルに追加して、マジックマウスをマッピングし、down-mouse-3mouse-3クリックしflyspellます。

    ;;
    (add-hook 'flyspell-mode-hook 'my-flyspell-mode-hook)
    ;;
    (defun my-flyspell-mode-hook ()
      ;; Do things when flyspell enters of leaves flyspell mode
      ;; Added manually
      ;;
      ;; Magic Mouse Fixes
      (if flyspell-mode (progn
           (define-key flyspell-mouse-map [down-mouse-3] #'flyspell-correct-word)
           (define-key flyspell-mouse-map [mouse-3] #'undefined))
        nil)
      ;; End my-flyspell-mode-hook
      )
    

この回答は以下を使用して検証されました:

emacs-version: 2018-05-30のGNU Emacs 26.1(ビルド1、x86_64-apple-darwin14.5.0、NS appkit-1348.17バージョン10.10.5(ビルド14F2511))


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