OS X의 Emacs에서 <s-mouse-1>을 <mouse-2>로 리 바인드


8

나는 맥북 프로를 사용하므로 하나의 버튼으로 트랙 패드가 적용됩니다. 물론 두 손가락 mouse-1으로 클릭하고 mouse-3클릭하여 수행 할 수 있지만 중간 클릭 ( mouse-2)에 대해서는 할 수있는 일이 많지 않습니다 .

나는 이것이 이전에 나를 물리 치지 않은 것에 놀랐지 만 최근에 마우스 가운데 버튼이 없기 때문에 화가 나기 시작했다. 특히 ERCand를 사용하기 시작했습니다 flyspell. 둘 다 중간 클릭이 필요한 기능이 있습니다.

나는 광범위하게 봤지만 이것을 할 수있는 방법을 찾지 못했습니다. 다음은 정확히 내가하고 싶은 일입니다.

이맥스 볼 수 있도록 이맥스에서, 내가 좋아하는 것 command+mouse-1그 것처럼 mouse-2. 기본적으로 이벤트 <s-mouse-1>를 트리거 하기 위해 리 바인드하는 방법을 원합니다 <mouse-2>. 이것이 가능한가?

도움이된다면 Cocoa Emacs의 Emacs 24 빌드 중 하나를 사용하고 있으며 08 년 맥북 프로에서 Lion을 실행하고 있습니다.

답변:


5

이 시도:

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

자세한 내용은 번역 키맵을 참조하십시오 .


2
이 작업을 수행 한 후 cmd-click for flyspell을 사용하려고하면 다음 오류 메시지가 표시됩니다. flyspell-correct-word는 매개 변수가있는 이벤트에 바인딩되어야합니다. 어떤 제안?
Alex R

1
이상하게도 같은 오류 메시지가 나타났습니다. 다음은 나를 위해 작동합니다.(global-set-key [M-down-mouse-1] 'flyspell-correct-word)
edwardw

0

Trey의 제안은 저에게 효과가 없었지만 이것은 효과가있었습니다.

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

이것은 컨트롤 왼쪽 클릭을 중간 클릭으로 매핑합니다 ( down-조각은 저에게 효과적이지 않았습니다).

Alex R에 대한 참고 사항 : C-...명령이 아닌 제어-(소문자 s-...)


0

이것은 해결 방법만큼 큰 해결책은 아니지만 현재 는 세 손가락으로 할 때 중간 클릭을 트리거하여 시스템 전체에서 중간 클릭 기능을 추가 하는 (오픈 소스) MiddleClick 앱 을 시도하고 있습니다. 꼭지.

유일한 문제는 매번 트랙 패드에서 세 손가락을 터치하여 실수로 가운데 클릭을 누를 수 있다는 것인데, 이는 다소 성가신 일입니다. 해당 스크롤 동작을 충분히 발음하지 않으면 세 손가락 탭과 충돌 할 수 있는 시스템 트랙 패드 바인딩 (예 : App Expose또는 Mission Control)도 있습니다. 실행중인 앱 자체에 설정이없는 것처럼 소스를 조정하여 이러한 충돌을 해결할 수 있습니다.

Homebrew를 통해 MiddleClick을 설치할 수도 있습니다.

brew cask install middleclick

편집하다:

MiddleClick의 세 손가락 탭 동작은 적어도 성 가시고 사용할 수 없다는 것이 밝혀졌습니다. 또한 MiddleClick은를 사용하기 때문에 더 나은 동작을 위해 소스를 수정하려고 시도하는 것이 가치가있는 것보다 더 어려운 것으로 판명되었습니다 MultitouchSupport.framework. 불행히도, 지금은 그럴 시간이 없습니다. 아주 기본적인 것에 그러나 동일한 기본 기능을 구현하지만 훨씬 더 많은 사용자 정의 기능을 제공하는 BetterTouchTool 을 찾았 습니다 . 무료는 아니지만 3 달러에 불과하며 Magic Trackpad 2에서도 잘 작동합니다 . MagicPrefs 와 비슷한 앱에서는 말할 수 없습니다 .

홈 터치를 통해 BetterTouchTool을 설치할 수도 있습니다.

brew cask info bettertouchtool
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.