Tạo sự kiện chuột-2 từ bàn di chuột MacBook


7

Tôi có Emacs.app phiên bản 24.5 (9.0) trên MacBook với Mac OS X 10.11.3 (15D21). Làm cách nào tôi có thể tạo chuột-2 từ bàn di chuột của MacBook? Tôi đã googled và tìm thấy tài liệu tham khảo cho mac-emulate-three-button-mouse( câu hỏi này ) (không tìm thấy trong phiên bản Emacs như vậy) và các thủ thuật tương tự không hoạt động.

Có thể tạo ra một sự kiện như vậy, hoặc có một số cách khác, như ràng buộc toàn cầu một cái gì đó như s- <mouse-1> với <mouse-2>, v.v.?

Câu trả lời:


4

Bạn cũng có thể cho flyspell sử dụng mouse-3có vẻ phù hợp hơn cho menu ngữ cảnh:

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

Trả lời bị đánh cắp từ đây


Điều đó thật tuyệt! Tôi đã sửa đổi flyspell.el.gz mỗi lần và mỗi lần tôi cập nhật tôi sẽ mất nó.
Joshua Olson

4

Sau khi đọc thêm và đọc hướng dẫn, tôi đã tìm thấy một giải pháp phù hợp với mình, bằng cách thêm vào tệp ~/.emacs.d/init.eldòng sau:

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

Bằng cách này, tôi có thể tạo mouse-2sự kiện bằng cách nhấn Command khi nhấp bằng trackpad.

key-translation-maplà một sơ đồ dịch thuật (xem hướng dẫn sử dụng ) mà ... ... sử dụng các keymap dịch để dịch các chuỗi sự kiện nhất định sang các chuỗi khác.


Thật không may, điều này không làm việc cho tôi. Khi tôi cố gắng sử dụng s-mouse-1, tôi nhận được các thông báo như "flyspell-true-word phải được liên kết với một sự kiện với các tham số"
killdash9

Tôi nghĩ câu trả lời của Bryan Ash là câu trả lời đúng cho hầu hết mọi người.
Joshua Olson

2

Sao chép từ câu trả lời của tôi tại SuperUser:

Đây không phải là một giải pháp như một cách giải quyết, nhưng tôi hiện đang dùng thử ứng dụng MiddleClick (nguồn mở) có thêm chức năng nhấp chuột giữa trên toàn hệ thống bằng cách kích hoạt nhấp chuột giữa khi bạn thực hiện ba ngón tay- gõ.

Vấn đề duy nhất là bạn có thể vô tình nhấn chuột giữa bằng cách chạm ba ngón tay trên trackpad mọi lúc, điều này có phần khó chịu. Rõ ràng cũng có các ràng buộc trackpad hệ thống (ví dụ, App Exposehoặc Mission Control) có thể xung đột với ba ngón tay nếu bạn không thực hiện chuyển động cuộn tương ứng đủ phát âm. Bạn có thể có thể khắc phục các xung đột này bằng cách điều chỉnh các nguồn, vì có vẻ như không có cài đặt nào trong ứng dụng đang chạy.

Bạn cũng có thể cài đặt MiddleClick qua homebrew:

brew cask install middleclick

BIÊN TẬP:

Hóa ra, hành vi chạm ba ngón tay của MiddleClick khá khó chịu và không sử dụng được, đối với tôi ít nhất. Ngoài ra, việc cố gắng sửa đổi các nguồn để có hành vi tốt hơn chứng tỏ là rắc rối hơn giá trị của nó, vì MiddleClick sử dụng MultitouchSupport.framework, là riêng tư và yêu cầu kỹ thuật đảo ngược để hiểu được các tham số của chức năng. Thật không may, tôi không có thời gian cho việc đó ngay bây giờ, đặc biệt. trên một cái gì đó rất cơ bản. Tuy nhiên, tôi đã tìm thấy BetterTouchTool mà thực hiện các chức năng cơ bản giống nhau nhưng cung cấp nhiều tùy biến nhiều hơn. Nó không miễn phí, nhưng nó chỉ có 3 đô la và hơn thế nữa, nó hoạt động tốt với Magic Trackpad 2, không thể nói cho ứng dụng tương tự mà tôi cũng đã thử, MagicPrefs.

BetterTouchTool cũng có thể được cài đặt qua homebrew:

brew cask info bettertouchtool

1

Tôi đã điều chỉnh câu trả lời của bryan-ash để sử dụng add-hookchức năng thay vì eval-after-loadtùy chỉnh các ràng buộc chuột ma thuật của mình cho flyspell.

  1. Thêm mã elisp dưới đây vào .emacstệp của bạn để ánh xạ chuột ma thuật down-mouse-3mouse-3nhấp chuột cho 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
      )
    

Câu trả lời này đã được xác thực bằng cách sử dụng:

phiên bản emacs: GNU Emacs 26.1 (bản dựng 1, x86_64-apple-darwin14.5.0, NS appkit-1348.17 Phiên bản 10.10.5 (Bản dựng 14F2511)) của 2018-05-30


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.