Mac OS X Terminal: Mausunterstützung?


75

Gibt es eine native Option (dh ohne Installation von extra soft / package / plugins), um die Mausunterstützung in der Terminal-App zu aktivieren?

Eigentlich benutze ich viel vimmit der Option set mouse=a(Mausfunktionen aktivieren).

Es scheint jedoch, dass Terminal nicht alle Funktionen von xterm unterstützt.

Es scheint (nach einigem googeln), dass Terminal einmal die Mausunterstützung hatte, aber ich frage mich, wo es hingegangen ist.

NB: Ich möchte wirklich Mausunterstützung im Terminal, nicht nur für vim, also schlagen Sie bitte MacVim nicht vor:]


Was unterstützt xterm, was das Terminal nicht unterstützt? Copy-on-Highlight und Middle-Paste?
Ignacio Vazquez-Abrams

Die Maus berichtet. Es ist die echte Mausunterstützung. Copy-on-Highlight, Middle-Paste usw. haben meines Wissens nicht wirklich mit Terminal zu tun.

2
Copy-on-Highlight und Middle-Paste aßen Terminal-bezogene - in diesem Terminal tut sie nicht - Sie könnten iTerm für diejenigen versuchen
user151019

@Mark: Ich habe es überprüft und es hat mir gefallen. Obwohl Terminal mit viel besser fett gedruckten Zeichen umgehen kann. Trotzdem danke.

2
@Arjan: Einige interaktive CLI-Apps unterstützen die Maus. Positionieren Sie beispielsweise den Textcursor in vim.
ELLIOTTCABLE

Antworten:


104

Ich habe die Antwort gefunden!

Ein Freund hat mir den Trick erzählt, es ist so einfach, dass ich mich schäme.

Drücken Sie einfach die Alt-Taste und klicken Sie! (mit zuvor in vim aktivierter Mausunterstützung)


UPDATE für OSX 10.11 El Capita

Bitte lesen Sie die Antwort von Chris Page .


11
Ich bin seit einem halben Jahrhundert ein Power-User von OS X, und das habe ich nie gewusst. Ich bin sehr beeindruckt. Ich wünschte, ich könnte Ihnen hundert statt einer Stimme geben.
ELLIOTTCABLE

4
Wie auch immer, um die Anforderung zu deaktivieren, um zu verwenden alt?
Philfreo

8
Es ist sowieso nicht dasselbe für mich. Oft klicke ich auf ein Zeichen und der Cursor landet irgendwo anders, in der Nähe davon. Es funktioniert auch nicht zum Wechseln der Tabs in vim. Es scheint auch nicht so gut für das Umschalten von Windows in tmux zu funktionieren.
Andyortlieb

1
@andyortlieb: deshalb bin ich auf iTerm2 umgezogen.
avetis.kazarian

2
Keine Arbeit für mich.
Mike Graf

23

Ab OS X 10.11 El Capitan unterstützt das Terminal das Maus-Reporting.

Beachten Sie, dass Programme, die Mouse Reporting unterstützen, es über Escape-Sequenzen aktivieren müssen, und dass die meisten Programme, die Mouse Reporting unterstützen, so konfiguriert sein müssen, dass es aktiviert wird. Zum Beispiel müssen Sie in Vim ausführen set mouse=a(normalerweise in Ihrer ~/.vimrcDatei).

Das Terminal unterstützt das Melden von drei Maustasten und einem Scrollrad. Um ein Drücken mit drei Tasten mit einem Gerät mit zwei Tasten zu simulieren, können Sie die Befehlstaste mit der rechten Maustaste verwenden. (Mit einem Rechtsklick mit Befehl wird auch Bearbeiten> Auswahl einfügen ausgeführt, wenn die Mausberichterstellung deaktiviert ist. Wenn Sie also die Mausberichterstellung verwenden, fügt Middle-Click den zuletzt ausgewählten Text ein.)

Wenn die Mausberichterstellung aktiviert ist, wird die Option ⌥Modifizierertaste zum Klicken und Scrollen Meta zugeordnet und bleibt von der Tastatureinstellung "Option als Metataste verwenden" unberührt, die nur für Tastatureingaben gilt.

Um die FnMausberichterstellung vorübergehend zu umgehen und mit der Terminalansicht zu interagieren, drücken Sie die Modifizierertaste, während Sie klicken oder scrollen. Es gibt auch eine Menüoption Ansicht> Mausberichte zulassen (⌘R) , mit der Sie die Mausberichte für einen längeren Zeitraum umgehen können oder wenn die Modifizierertaste nicht verfügbar ist.

Beachten Sie, dass Mouse Reporting, wenn es aktiviert ist, das vorhandene Options-Klick-Verhalten von Terminal (das Eingaben über die Pfeiltasten zum Bewegen des Cursors sendet) und das Verhalten „Alternativer Bildlauf“ ersetzt. Das neue MenüelementFn "Mausberichte zulassen" und der Modifikator gelten auch für "Alternativer Bildlauf", damit Sie dieses Verhalten vorübergehend umgehen können.


"Allow Mouse Reporting" ist die Antwort für mich. iTerm2 hatte diese Funktion, aber ich möchte nur die integrierte Terminal-App für sein geringes Gewicht verwenden.
Kay,

@Kay: Ich bin froh, dass es Ihnen gefällt, aber um es klar zu sagen, der Menüpunkt "Mausberichte zulassen" aktiviert die Mausberichte nicht. Es handelt sich lediglich um einen Befehl, mit dem Sie vorübergehend mit der Terminalansicht interagieren können, anstatt bei aktivierter Mausberichterstellung Mauseingaben an das Remote-Programm zu senden. Programme aktivieren das Maus-Reporting, indem sie Steuersequenzen an das Terminal senden.
Chris Seite

12

Als Alternative zur Verwendung von Alt-Klick zum Setzen des Cursors in vi mit OS X Terminal möchte ich die Verwendung von iTerm 2 vorschlagen:

Ich wollte Mausunterstützung in Terminal vi (Mac OS X 10.7 Lion), aber es gibt keine Unterstützung für das Scrollen mit dem Scrollrad. Am Ende habe ich von Terminal zu iTerm 2 gewechselt, das das Scrollen mit dem Mausrad unterstützt, und Sie müssen nicht die Alt-Taste gedrückt halten, um den Cursor zu setzen.

Wenn Sie einige der erweiterten Funktionen der Lion's Terminal-App nicht nutzen , sind Sie mit iTerm 2 möglicherweise recht zufrieden.

Bearbeiten : Um die Mausunterstützung in Vim bei Verwendung von iTerm 2 zu aktivieren, fügen Sie Ihrer .vimrc-Datei die folgende Zeile hinzu:

:set mouse=a

Wie können Sie mit dem Mausrad nach unten scrollen ? Es geht nur den Bildschirmpuffer hoch, und Sie können dies in Terminal.app erreichen, indem Sie die Verwendung des alternativen Bildschirmpuffers deaktivieren, z. B. in vim using set t_ti= t_te=in your ~/.vimrc.
Daniel Beck

Ich musste :set mouse=ain meinem .vimrc konfigurieren - das ist der normale Weg, um die Mausunterstützung in Vim zu aktivieren, aber es scheint, dass die Mauseingabe von Terminal.app übernommen wird. Das Scrollen in einer Textdatei mit dem Scrollrad nach oben und unten scheint jedoch in iTerm2.app perfekt zu funktionieren.
Steve HHH

Unter MacOS Mojave (10.14) habe ich keine Probleme, die Maus in vim über das OSX-Terminal zu verwenden.
gagarine

1

Unter OS X 10.4 (bei 10.5 bin ich mir nicht sicher) können Sie die Mausunterstützung aktivieren. Öffnen Sie das Terminal und klicken Sie auf Fenstereinstellungen. Klicken Sie in der Dropdown-Liste auf "Emulation" und aktivieren Sie die Option "Zum Positionieren des Cursors klicken".


1
Tatsächlich gibt es in den Terminal-Einstellungen unter 10.5 nichts Vergleichbares wie "Fenstereinstellungen" und auch nicht unter 10.6. In der Registerkarte "Fenster" können Sie lediglich die Hintergrundfarbe, die Bildlaufgröße, den Titel und die Fenstergröße ändern.

1
Es muss dann erst um 10.4 sein ...

1
Dies ist nicht genau die Mausunterstützung. Auf diese Weise können Sie optional auf einen Teil des Terminals klicken, und Terminal.app berechnet, wie viele Zeilen hoch / runter / links / rechts erforderlich sind, um den Cursor dorthin zu bewegen, und gibt sie dann ein. Sehr nützlich, aber nicht das, was der OP wollte, glaube ich nicht.
Josh

1

Beachten Sie, dass Mac OS X zusätzlich zu Terminal.app über xterm verfügt. Ich konnte Ihrer Frage nicht entnehmen, ob Sie sich dessen bewusst waren. Wenn Sie das X11-Paket installiert haben, können Sie ein xterm-Fenster starten und die Mausunterstützung funktioniert einwandfrei.


0

MouseTerm scheint das perfekte SIMBL-Plugin für alle zu sein, die eine gute Mausunterstützung für ihre Mac OS X-Terminals wünschen. Ab Mai 2013 werden in der neuesten Version (1.0b1, veröffentlicht im Juli 2011) die folgenden Funktionen zur Standard-Terminal-Anwendung von OS X hinzugefügt:

  • Berichterstattung über Maustasten.
  • Mausrad-Berichterstellung.
  • Simuliertes Scrollen mit dem Mausrad für Programme wie less (dh alle Vollbildprogramme, die den Cursortastenmodus der Anwendung verwenden).
  • Terminalprofil-Integration (mit Voreinstellungsdialog).

Ich benutze tmux und vim damit und kann nicht nur klicken (ohne die Optionstaste!), Sondern auch scrollen und mit wenig Konfiguration darin ziehen: zB :set mouse=afür vim und tmux set-window-option mode-mouse on. Das Umschalten der Mausberichterstellung (mit einer einzelnen Tastenkombination ⇧⌘Moder über das Shell-Menü) ist ganz einfach , sodass Sie nichts verlieren können, wenn Sie sie installiert haben.

(Vorsichtsmaßnahme: Klicken / Ziehen im tmux-Kopiermodus funktioniert jedoch nicht wie erwartet.)


Noch eine Einschränkung - Ich habe festgestellt, dass die Mausunterstützung nach dem ersten Start von Terminal nach dem Anmelden überhaupt nicht funktioniert, bis ich Terminal beende und erneut starte.
Michael

@Michael: Ihr Symptom ist der alten SIMBL-Ausgabe 13 vertraut . Ein Update von SIMBL würde das wahrscheinlich beheben. (0.9.9 oder 0.9.9b)
netj

versucht 0.9.9, hat nicht funktioniert. Ich habe das AppleScript in Kommentar Nr. 23 ausprobiert und "Erwartetes Zeilenende, aber gefundener Bezeichner" erhalten ("Snow Leopard" wurde in "Löwe" geändert, aber ich führe Löwe aus ...)
Michael

habe auch 0.9.9b (Patched for Lion) ausprobiert und das behebt es auch nicht. müssen Terminal noch neu starten, bevor es Mausereignisse akzeptiert.
Michael

0

Sie können die xterm-Emulation in erweiterten Einstellungen einrichten, zumindest in Terminal 2.4 (OS X 10.9.3). Dies ermöglichte mir die korrekte Mausunterstützung.


Es funktioniert nicht (bitte unbedingt mit vim und tmux testen).
avetis.kazarian
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.