Wenn ich Text in tmux in iTerm2 unter macOS mit der Maus auswähle, wird der ausgewählte Text in meine Zwischenablage kopiert. Ich muss keine zusätzlichen Schaltflächen anklicken - wähle einfach den gewünschten Text aus und du bist fertig.
Ich habe tmux in terminal.app auf macOS getestet, aber es funktioniert dort nicht - ich muss drücken, yum die Auswahl in meine Zwischenablage zu kopieren.
Ich dachte, dass es eine Mausbindung gibt (so MouseOnSelectionähnlich wie MouseDown1Pane), aber ich konnte im Internet nichts Nützliches finden und man tmux.
Ich frage mich, ob es eine Möglichkeit gibt, ein ähnliches Verhalten unter Ubuntu 16.10 zu erzielen - vorzugsweise im Gnome-Terminal.
set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
Vor tmux 2.4:
set-option -g mouse on
set-option -s set-clipboard off
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -se c -i"
Erläuterung: Zuerst müssen wir die Mausoption aktivieren, damit tmux die Maus erfasst und uns Mausereignisse binden lässt:
set-option -g mouse on
Gnome-Terminal unterstützt das Einstellen der Zwischenablage mithilfe von xterm-Escape-Sequenzen nicht, daher sollten wir sicherstellen, dass die set-clipboardOption deaktiviert ist:
set-option -s set-clipboard off
Diese Option wird auf iTerm2 möglicherweise standardmäßig unterstützt und aktiviert (siehe set-clipboardim tmux-Handbuch), was das Verhalten dort erklären würde.
Wir können dann den Kopiermodus MouseDragEnd1Pane"key", dh wenn die erste Maustaste nach dem Klicken und Ziehen in einem Bereich losgelassen wird, an einen tmux-Befehl binden, der die aktuelle Auswahl des Kopiermodus (die durch die Standardbindung für vorgenommen wurde MouseDrag1Pane) übernimmt und diese per Pipeline weiterleitet zu einem Shell-Befehl. Dieser tmux Befehl war copy-pipevor tmux 2,4, und hat sich seitdem geändert zu send-keys -X copy-pipe[-and-cancel]. Was den Shell-Befehl betrifft, brauchen wir einfach etwas, das den Inhalt der System-Zwischenablage auf das setzt, was auch immer dazu geleitet wird. In den folgenden Befehlen wird dazu xclip verwendet.
Diese hochqualitative Antwort hat mich zum Klicken gebracht. Danke!
Cjauvin
2
Für jeden , der versucht dies auf einem Mac zu tun , weil sie ihre Terminal - Funktionalität und die Standardmethode , wie angegeben durch die OP nicht mehr funktioniert (ich verwende Byobu , die seine eigene Kopie Puffer hat) geändert haben: die Ersetzung xclip...Anweisung mit einem einfachen pbcopytut der Trick.
Darrel Holt
Keine der Lösungen in diesem Thread funktioniert für mich.
Yankee
1
Hallo Josh, als ich die Quelldatei ~ / .tmux.conf habe, stellte sich heraus:Unknown key: MouseDragEnd1Pane
Xifeng Li
8
Als Erweiterung zu der akzeptierten Antwort wird der Kopiermodus oft als störend empfunden, wenn die Maustaste losgelassen wird (dies passiert mit copy-pipe-and-cancel). Siehe: https://github.com/tmux/tmux/issues/140 . Daher können wir in neuerem tmux (ich benutze 2.6) copy-pipezusammen mit clear selectionkopieren, um die Auswahl zu treffen, aber den Kopiermodus nicht verlassen:
Guter Punkt. Ich benutze selbst den Kopiermodus (Emacs-Stil) und habe daher nach dem Testen meine eigene Konfiguration eingefügt. Ich habe die Antwort so aktualisiert, dass beide in der akzeptierten Antwort enthalten sind.
Shawn Hoover
0
Bei einer weiteren Erweiterung geht es um die Verwendung von Shiftkey.
Halten Sie gedrückt, Shiftwährend Sie Text mit der Maus auswählen. Jetzt erhalten Sie ein Standard-Rechtsklick-Menü (gedrückt halten oder Shifterneut drücken ) und können mit Ctrl+Shift+Cund Ctrl+Shift+Vkopieren und einfügen. Der kopierte Text ist auch in der Systemzwischenablage verfügbar .
xclip...
Anweisung mit einem einfachenpbcopy
tut der Trick.Unknown key: MouseDragEnd1Pane
Als Erweiterung zu der akzeptierten Antwort wird der Kopiermodus oft als störend empfunden, wenn die Maustaste losgelassen wird (dies passiert mit
copy-pipe-and-cancel
). Siehe: https://github.com/tmux/tmux/issues/140 . Daher können wir in neuerem tmux (ich benutze 2.6)copy-pipe
zusammen mitclear selection
kopieren, um die Auswahl zu treffen, aber den Kopiermodus nicht verlassen:quelle
Erweitern beider Antworten zum Kopieren von msys2 in die Windows-Zwischenablage (und Deaktivieren der Auswahl):
quelle
Bei einer weiteren Erweiterung geht es um die Verwendung von
Shift
key.Halten Sie gedrückt,
Shift
während Sie Text mit der Maus auswählen. Jetzt erhalten Sie ein Standard-Rechtsklick-Menü (gedrückt halten oderShift
erneut drücken ) und können mitCtrl+Shift+C
undCtrl+Shift+V
kopieren und einfügen. Der kopierte Text ist auch in der Systemzwischenablage verfügbar .Getestet am
Ubuntu 18.04.1
mittmux 2.6
.Quelle: https://forum.upcase.com/t/tmux-ctrl-shift-c-and-ctrl-shift-v-bindings/1208 .
quelle