Kopieren in die Zwischenablage von Tmux in El Capitan


18

Ich bin sehr zufrieden mit den Terminaländerungen in El Capitan (siehe zB diese Frage ).

Ich kann jedoch nicht herausfinden, wie das Kopieren in die System-Zwischenablage in Tmux aktiviert werden kann. Zum Beispiel, jetzt, da ich in der Lage bin, Text in Tmux richtig mit der Maus auszuwählen, wie kann ich ausgewählten Text zusätzlich zum eigenen Puffer von Tmux auch in die Zwischenablage kopieren?

Ich habe folgendes in meinem tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Ich habe versucht, die letzte Zeile zu ändern

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

aber es hat nicht wirklich funktioniert. Wäre für Vorschläge dankbar!

Vielen Dank!


Cmd-C funktioniert nicht?
Nohillside

1
@partix - Nein, da kopierter Text nach dem Loslassen der Maustaste (oder des Trackpads) automatisch abgewählt wird. Natürlich funktioniert es im Terminal, aber nicht von Tmux innerhalb des Terminals.
Siphiuel

Das Update auf Tmux 2.1 hat das Scrollen mit der Maus in Tmux-Fenstern unterbrochen.
siphiuel

Antworten:


27

Eigentlich finde ich gerade eine sehr einfache Lösung, wie ich das Kopieren mit Cmd + C wieder aktivieren kann.

In der Standard-Terminal-Anwendung gehen Sie zu Ansicht -> "Maus-Reporting zulassen" und deaktivieren Sie es. Das ist es.

PS: Offensichtlich funktionieren die neuen netten Funktionen wie das Ziehen des geteilten Bildschirms in tmux nicht mehr, nachdem die Maus-Berichterstellung deaktiviert wurde.


PS: Ich habe vorher eine Lösung von @siphiuel verwendet, die auch gut funktioniert.
Oplatek

1
Vielen Dank!!! Das ist der einfachste Weg! Nur dass die Geschichte kaputt ist. Ich kann nur einen Teil der Hitstory sehen
Sato

Super nett. Dies funktioniert
ShikharDua

Dies funktioniert auch für eine Remote-TMUX-Sitzung. Ich denke, dass die bind-key ... copy-pipeLösung möglicherweise nur funktioniert, wenn es sich um eine lokale tmux-Sitzung handelt. Andererseits könnte es funktionieren, wenn Sie die Remote-TMUX-Sitzung innerhalb einer lokalen TMUX-Sitzung durchführen. Wie auch immer, das Deaktivieren der Option "Maus-Berichterstellung zulassen" hat bei mir funktioniert, und es gibt sogar eine Tastenkombination ⌘-R (Cmd-R), mit der Sie die Option schnell deaktivieren können, um eine Kopie zu erstellen, und dann wieder aktivieren können.
Aaron Wallentine

24

Wenn Sie iTerm2 3.x verwenden, können Sie das Kopieren / Einfügen aktivieren, indem Sie Folgendes aktivieren Applications in terminal may access clipboard:

Bildbeschreibung hier eingeben

Markieren Sie einfach Text mit Ihrer Maus, um ihn in die OS X-Zwischenablage zu kopieren!

Sie können auch mit dem üblichen Cmd+ aus der OS X-Zwischenablage in tmux einfügen V.


2
Das war die einfachste Lösung für mich.
Lennart

Das ist fantastisch!
mljrg

16

Wenn Sie die Funktionstaste gedrückt halten, können Sie auch mit apple + c auswählen und in die Zwischenablage kopieren.


Wir suchen nach mehr als nur einer Antwort. Versuchen Sie, Ihre Antwort zu erweitern, um weitere Einzelheiten zu erfahren.
Allan

2
@Allan Dies ist eine vollständige Antwort, obwohl es sich nur um eine einzelne Zeile handelt. So einfach ist das.
Pkuhar

Übrigens, ich fand es funktioniert nur auf der Laptop-Tastatur, nicht angeschlossene Tastaturen :(
amohr

8

Eigentlich habe ich copy-pipemich geirrt, als ich sagte, dass das nicht funktioniert. Das funktioniert und copy-selectionist dann überflüssig, da copy-pipesowohl Text in das Tmux-Pasteboard kopiert als auch an einen beliebigen Shell-Befehl weitergeleitet wird. So funktioniert die folgende Zeile:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

Allerdings muss man zu drücken , ybevor Sie die Maustaste loslassen. Ich bin in der Dokumentation zum tmux-yank- Plugin auf Folgendes gestoßen :

"Wenn Sie eine Auswahl mit tmux mode-mouse on oder mode-mouse copy-mode treffen, können Sie sich nicht auf das Standardverhalten" Maus nach Auswahl freigeben, um zu kopieren "verlassen. Drücken Sie stattdessen y, bevor Sie die Maus freigeben."

So funktioniert es, allerdings mit etwas nervigem Drücken, yum mausselektierten Text zu kopieren.


3
Wenn Sie Terminal.app verwenden: In macOS Sierra funktioniert dies aufgrund einer Regression im Verhalten von Terminal.app nicht. Sie müssen "Reattach-to-User-Namespace" -Hack erneut verwenden.
m1keil

1
Stimmen Sie dem @ m1keil-Kommentar zu. Außerdem musste ich aus irgendeinem Grund das Reattach-to-User-Namespace mit zusätzlichen Schaltern wie brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste
folgt

4

Fügen Sie Ihrer tmux.conf-Datei unter Verwendung von tmux Version 2.2 oder höher Folgendes hinzu:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Funktioniert für El Capitan 10.11, tmux 2.7
Homer

2

Die Antwort von @Oplatek wird wirksam

In der Standard-Terminal-Anwendung gehen Sie zu Ansicht -> "Maus-Reporting zulassen" und deaktivieren Sie es.

Auf diese Weise könnten wir den Bildschirm jedoch nicht mit der Maus verschieben.

Hier ist eine andere Möglichkeit ohne Deaktivierung Allow mouse reporting: Drücken Sie Fnund wählen Sie den Text mit der Maus aus.


0

Unter tmux 2.2, OS X El Capitan, Terminal-Version 2.6.1 (die mit El Capitan gelieferte Standardeinstellung) funktioniert das folgende Setup (bis jetzt) ​​einwandfrei.

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Zum Kopieren die linke Maustaste drücken, den Text markieren und loslassen. Der markierte Text befindet sich dann in der Zwischenablage und kann wie gewohnt mit Cmd+ eingefügt werden v.


-2

Ich finde nur einen Weg

Terminaleinstellungen / -profile in Terminalinfo öffnen Terminaltyp von xterm-256 auf ansi ändern Neues Terminalfenster öffnen und genießen :)

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.