Terminal Mac OS X: obsługa myszy?

75

Czy istnieje natywna opcja (tj. Bez instalowania dodatkowego oprogramowania / pakietu / wtyczek), aby włączyć obsługę myszy w aplikacji Terminal?

Właściwie używam dużo vimopcji set mouse=a(aktywowanie funkcji myszy).

Wygląda jednak na to, że Terminal nie obsługuje wszystkich funkcji xterm.

Wydaje się (po pewnym googlowaniu), że Terminal miał kiedyś obsługę myszy, ale zastanawiam się, gdzie to poszło.

NB: Naprawdę chcę obsługiwać mysz w Terminalu, nie tylko dla vima, więc proszę, nie sugeruj MacVima:]

avetis.kazarian
źródło
Co xterm obsługuje, czego nie obsługuje Terminal? Skopiuj wyróżnienie i wklej w środku?
Ignacio Vazquez-Abrams
Raportowanie myszy. To prawdziwe wsparcie myszy. O ile mi wiadomo, kopiowanie przy podświetlaniu, wklejanie środkowe itp. Nie są tak naprawdę powiązane z Terminalem.
2
kopiuj przy podświetleniu i wklej środkowo związany Z terminalem - w tym, że Terminal ich nie robi - możesz wypróbować iTerm dla tych
użytkownik151019
@Mark: Sprawdziłem i podoba mi się. Chociaż Terminal obsługuje znacznie lepiej odważne postacie. W każdym razie dzięki.
2
@Arjan: niektóre interaktywne aplikacje CLI obsługują mysz; na przykład umieszczenie kursora tekstowego w vim.
ELLIOTTCABLE,

Odpowiedzi:

104

Znalazłem odpowiedź!

Przyjaciel powiedział mi sztuczkę, to takie proste, że się wstydzę.

Po prostu naciśnij klawisz Alt i kliknij! (z obsługą myszy wcześniej aktywowaną w vimie)


AKTUALIZACJA dla OSX 10.11 El Capita

Zobacz odpowiedź Chris Page .

avetis.kazarian
źródło
11
Byłem zaawansowanym użytkownikiem OS X przez pół wieku i nigdy tego nie wiedziałem. Jestem pod wielkim wrażeniem. Chciałbym dać ci sto głosów zamiast jednego.
ELLIOTTCABLE
4
W każdym razie, aby wyłączyć wymóg używania alt?
philfreo
8
W każdym razie to nie to samo. Często klikam na postać, a kursor kończy się gdzieś indziej, niejako w pobliżu. Nie działa również przy przełączaniu kart w vimie. Wydaje się również, że nie działa tak dobrze do przełączania okien w tmux.
andyortlieb
1
@andyortlieb: dlatego przeprowadziłem się do iTerm2.
avetis.kazarian
2
nie działa dla mnie.
Mike Graf
23

Począwszy od systemu OS X 10.11 El Capitan, terminal obsługuje raportowanie myszy.

Należy pamiętać, że programy obsługujące Raportowanie myszy muszą włączyć tę funkcję za pomocą sekwencji ucieczki oraz że większość programów obsługujących Raportowanie myszy musi być skonfigurowana, aby to umożliwić. Na przykład w Vimie musisz wykonać set mouse=a(zwykle w swoim ~/.vimrcpliku).

Terminal obsługuje zgłaszanie trzech przycisków myszy i kółka przewijania. Aby zasymulować naciśnięcie przycisku z trzema przyciskami za pomocą urządzenia z dwoma przyciskami, możesz użyć klawisza Command-Click. (Kliknięcie prawym przyciskiem myszy wykonuje również Edycję> Wklej zaznaczenie, gdy Raportowanie myszy jest wyłączone, więc Kliknięcie środkowym przyciskiem wklei ostatnio zaznaczony tekst, niezależnie od tego, czy korzystasz z Raportowania myszy).

Gdy raportowanie myszy jest włączone, Option ⌥klawisz modyfikujący jest mapowany na Meta w celu klikania i przewijania i nie ma na niego wpływu preferencja klawiatury „Użyj opcji jako klawisza meta”, która ma zastosowanie tylko do wprowadzania z klawiatury.

Aby tymczasowo ominąć Raportowanie myszy i wejść w interakcję z widokiem terminala, naciśnij klawisz Fnmodyfikatora podczas klikania lub przewijania. Istnieje również element menu Widok> Zezwalaj na raportowanie myszy (⌘R), którego można używać do omijania Raportowania myszy przez dłuższy czas lub jeśli klawisz modyfikujący nie jest dostępny.

Należy pamiętać, że po włączeniu Raportowanie myszy zastępuje istniejące zachowanie Terminal-Option (które wysyła dane z klawiszy strzałek w celu przesunięcia kursora) i zachowanie „Przewiń ekran alternatywny”. Ponadto nowy element menu Zezwalaj na raportowanie myszy oraz Fnmodyfikator dotyczą również „Przewiń ekran alternatywny”, aby tymczasowo ominąć to zachowanie.

Chris Page
źródło
„Zezwalaj na raportowanie myszy” to dla mnie odpowiedź. iTerm2 miał tę funkcję, ale chcę tylko użyć wbudowanej aplikacji Terminal ze względu na jej lekkość.
Kay
@Kay: Cieszę się, że ci się podoba, ale dla jasności element menu „Zezwalaj na raportowanie myszy” nie włącza Raportowania myszy. Jest to tylko polecenie pozwalające na tymczasową interakcję z widokiem terminala zamiast wysyłania danych wejściowych myszy do zdalnego programu, gdy włączone jest Raportowanie myszy. Programy włączają raportowanie myszy, wysyłając sekwencje kontrolne do terminala.
Chris Page
12

Jako alternatywę dla używania Alt-kliknięcia, aby ustawić kursor w vi z terminalem OS X, chciałbym zasugerować użycie iTerm 2:

Chciałem obsługi myszy w Terminalu vi (Mac OS X 10.7 Lion), ale nie ma obsługi przewijania za pomocą kółka przewijania. Skończyło się na przełączeniu z Terminalu na iTerm 2, który obsługuje przewijanie vi kółkiem przewijania i nie trzeba przytrzymywać klawisza Alt, aby ustawić kursor.

Jeśli nie korzystasz z niektórych bardziej zaawansowanych funkcji aplikacji Lion's Terminal , możesz być całkiem zadowolony z iTerm 2.

Edycja : Aby włączyć obsługę myszy w Vimie podczas korzystania z iTerm 2, dodaj następujący wiersz do .vimrc:

:set mouse=a
Steve HHH
źródło
Jak przewijać w dół za pomocą kółka myszy? Po prostu idzie w górę bufora ekranu, i można go uzyskać w Terminal.app, wyłączając korzystanie z alternatywnego bufora ekranu, np. W vimie używanym set t_ti= t_te=w twoim ~/.vimrc.
Daniel Beck
Musiałem skonfigurować :set mouse=aw moim .vimrc - to normalny sposób, aby włączyć obsługę myszy w Vimie, ale wygląda na to, że dane wejściowe myszy są pobierane przez Terminal.app. Jednak przewijanie w górę i w dół pliku tekstowego za pomocą kółka przewijania wydaje się działać idealnie w iTerm2.app.
Steve HHH,
W systemie MacOS Mojave (10.14) nie mam problemu z używaniem myszy w vimie przy użyciu terminala OSX.
gagarine
1

Wygląda na to, że w OS X 10.4 (nie jestem pewien co do wersji 10.5) możesz włączyć obsługę myszy. Otwórz terminal, a następnie kliknij Ustawienia okna. Kliknij Emulacja z rozwijanej listy, a następnie zaznacz opcję „Kliknij, aby ustawić kursor”.

Joe D.
źródło
1
W rzeczywistości nie ma nic takiego jak „Ustawienia okien” w preferencjach terminalu w wersji 10.5 ani w wersji 10.6. W zakładce „Okno” możesz jedynie zmienić kolor tła, rozmiar przewijania, tytuł i rozmiar okna.
1
Musi to być dopiero 10.4, a potem ...
1
To nie jest dokładnie obsługa myszy. Pozwoli to na kliknięcie części terminala, a Terminal.app obliczy, ile znaków w górę / w dół / w lewo / w prawo jest potrzebnych do przesunięcia kursora, a następnie wpisz je. Bardzo przydatne, ale nie to, czego chciał PO, nie sądzę.
Josh
1

Zauważ, że Mac OS X ma xterm oprócz Terminal.app. Nie potrafię powiedzieć z twojego pytania, czy byłeś tego świadomy. Ale jeśli masz zainstalowany pakiet X11, możesz uruchomić okno Xterm, a obsługa myszy działa dobrze.

Josh
źródło
0

MouseTerm wydaje się być idealną wtyczką SIMBL dla tych, którzy chcą przyzwoitej obsługi myszy w terminalach Mac OS X. W maju 2013 r. Najnowsza wersja (1.0b1 wydana w lipcu 2011 r.) Stwierdza, że ​​dodaje następujące funkcje do standardowej aplikacji terminalowej OS X:

  • Raportowanie przycisku myszy.
  • Raportowanie kółka myszy.
  • Symulowane przewijanie kółkiem myszy w przypadku programów takich jak less (tj. Każdy program pełnoekranowy korzystający z trybu klawiszy kursora aplikacji).
  • Integracja profilu terminala (z oknem preferencji).

Używam z nim tmuxa i vima i pozwala mi to nie tylko klikać (bez klawisza opcji!), Ale także przewijać i przeciągać wewnątrz nich przy niewielkiej konfiguracji: np. :set mouse=aDla vima i tmux set-window-option mode-mouse on. Raportowanie myszy można łatwo przełączać (za pomocą jednej kombinacji klawiszy ⇧⌘Mlub z menu Powłoki), więc nie ma nic do stracenia po zainstalowaniu.

(Uwaga: Klikanie / draging w trybie kopiowania tmux nie działa jednak tak, jak się spodziewałem.)

netj
źródło
Kolejne zastrzeżenie - zauważyłem, że po pierwszym uruchomieniu terminalu po zalogowaniu obsługa myszy w ogóle nie działa, dopóki nie zamknę terminala i nie uruchomię go ponownie.
Michael
@Michael: Twój symptom wydaje się znany ze starego wydania SIMBL 13 . Aktualizacja SIMBL prawdopodobnie to naprawi. (0.9.9 lub 0.9.9b)
netto 13.06.13
próbowałem 0.9.9, nie działał. Próbowaliśmy AppleScript w komentarzu # 23, ale „Oczekiwany koniec linii, ale okazało się identyfikator” (zmiana „Snow Leopard” do „Lion”, ale używam Lion ...)
Michael
wypróbowałem również 0.9.9b (Łata dla Lwa), ale to też tego nie naprawia. nadal muszę zrestartować Terminal, zanim zaakceptuje zdarzenia myszy.
Michael
0

Możesz ustawić emulację xterm w zaawansowanych ustawieniach, przynajmniej w Terminalu 2.4 (OS X 10.9.3). Umożliwiło to właściwe wsparcie myszy.

Tom S.
źródło
To nie działa (należy przetestować z vimem i tmuxem).
avetis.kazarian