Synchronisieren Sie Pasteboard zwischen Remote-TMUX-Sitzung und lokalem Mac OS Pasteboard

18

Setup: Ich verwende iTerm2 unter MacOS, um eine Verbindung zu einem Remote-Server herzustellen. Der Remote-Server führt tmux aus, in dem ich Dateien öffne und in vim-Sitzungen bearbeite.

Problem: Ich kann nicht zwischen der Remote-TMUX-Sitzung und dem lokalen iTerm-Client kopieren / einfügen. Ich kann die Alt / Option + Maus-Auswahl von iTerm 2 verwenden, um Text auszuwählen, aber dies wird über mehrere VIM-Fenster / TMUX-Fenster kopiert - schlecht.

Gibt es eine elegante Lösung, um Auswahlen in tmux-Fenstern zwischen dem Remote-Pasteboard und dem lokalen (MacOS-Pasteboard) zu synchronisieren? Ich habe den Namespace "reattach-to-user" gesehen , bin mir aber ziemlich sicher, dass er nicht das tut, was ich will.

bhargav
quelle
3
Ist das wirklich ein TMUX-Problem? Mir scheint, Sie hätten das gleiche Problem im Allgemeinen, wenn Sie nur über ssh eine Verbindung herstellen.
Kejadlen
3
Möglicherweise handelt es sich nicht um ein TMUX-Problem, aber um ein Workflow-Problem. Ich kann nicht der einzige sein, der genau dieses Problem hat. Deshalb frage ich mich, was andere tun, um es zu umgehen.
Bhargav

Antworten:

13

Wenn Sie also in den Server sshen, können Sie Reverse-Tunneling verwenden, damit Sie mit Ihrem OSX-Rechner zurücksprechen können, um ihm Befehle zu senden pbcopy.

ssh -R 1234:localhost:22 remoteServer

Ersetzen Sie 1234den Remote-Server durch einen beliebigen offenen Port. Dann können Sie auf dem Remote-Server Folgendes ausführen:

tmux save-buffer - | ssh -p 1234 localhost pbcopy

Das sollte sich wieder mit OSX verbinden und den Inhalt Ihres tmux-Kopierpuffers dorthin senden. Möglicherweise möchten Sie ssh-Schlüssel verwenden, um zu verhindern, dass Sie Ihr Kennwort auf Ihrem OSX-Computer eingeben.

Wenn das funktioniert, können Sie Ihre tmux-Tastenkombinationen erstellen.

bind C-c run "tmux save-buffer - | ssh -p 1234 localhost pbcopy"

Damit dies funktioniert, müssen Sie die Remote-Freigabe in OSX aktivieren.

Sekundäre Option:

Da Sie OSX verwenden und auch iTerm2 verwenden, sollten Sie möglicherweise http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203.tar.gz&can installieren = 2 & q = auf Ihren Servern.

Es ist im Grunde ein Custom-Tmux, der das "-C" -Flag unterstützt. Diese Flagge übergibt Fenster, Fenster und deren Aufteilung an iTerm2.

Papst
quelle
2

Eine einfachere Methode

  1. Aktivieren Sie XQuartz, um die Zwischenablage zu synchronisieren
  2. Verwenden Sie die X11-Weiterleitung, wenn Sie eine Verbindung zum Remote-Server herstellen
  3. Habe eine Bindung wie in deiner tmux.conf: bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • wo sich die X-Zwischenablage Ihrer Wahl hinter der Pipe befindet

Sie können auch eine ähnliche Bindung in vim erstellen, wenn Sie dies wünschen

zurückhaltend
quelle
0

Dank der Antwort des Papstes habe ich den tmux -CHinweis ausprobiert .

  1. Sie müssen nichts installieren, da die aktuelle tmux-Version das -CFlag unterstützt .
  2. Verwenden Sie -CC, weil -Cnicht immer funktioniert.

Also mit tmux -CC(oder tmux -CC attach) tmux ist es noch besser als es schon ist.

mamiu
quelle