Zsynchronizuj pulpit między zdalną sesją Tmux a lokalnym pulpitem Mac OS

18

Konfiguracja: Używam iTerm2 na MacOS, aby połączyć się ze zdalnym serwerem. Na zdalnym serwerze działa tmux, w którym otwieram pliki i edytuję w sesjach vima.

Problem: Nie mogę skopiować / wkleić między zdalną sesją tmux a lokalnym klientem iTerm. Mogę użyć tekstu / opcji + zaznaczenia myszy iTerm 2 do zaznaczenia tekstu, ale kopiuje to wiele paneli vim / paneli tmux - źle.

Czy istnieje jakieś eleganckie rozwiązanie umożliwiające synchronizację selekcji w panelach tmux między zdalnym pulpitem a lokalnym (MacOS)? Widziałem przestrzeń przyłączania do nazwy użytkownika , ale jestem pewien, że nie robi tego, co chcę.

Bhargaw
źródło
3
Czy to naprawdę problem z Tmuxem? Wydaje mi się, że ogólnie miałbyś ten sam problem z połączeniem tylko przez ssh.
kejadlen
3
Może to nie być problem tmux, ale jest to problem z przepływem pracy. Nie mogę być jedynym, który ma dokładnie ten problem - dlatego zastanawiam się, co robią inni ludzie, aby obejść ten problem.
bhargav

Odpowiedzi:

13

Tak więc, kiedy ssh do serwera, możesz użyć tunelowania wstecznego, dzięki czemu możesz rozmawiać z komputerem OSX, aby wysłać polecenia pbcopy.

ssh -R 1234:localhost:22 remoteServer

Zastąp 1234dowolny otwarty port zdalnym serwerem. Następnie na zdalnym serwerze możesz uruchomić:

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

To powinno połączyć się z powrotem z OSX i wysłać do niego zawartość bufora kopiowania tmux. Możesz użyć kluczy ssh, aby zapobiec wpisywaniu hasła do komputera z systemem OSX.

Jeśli to działa, możesz następnie utworzyć skróty klawiszowe tmux.

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

Należy zauważyć, że aby to zadziałało, musisz włączyć zdalne udostępnianie w OSX.

Opcja dodatkowa:

Ponieważ używasz OSX, jeśli używasz również iTerm2, możesz rozważyć zainstalowanie http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203.tar.gz&can = 2 i q = na twoich serwerach.

Jest to w zasadzie niestandardowy tmux, który obsługuje flagę „-C”. Ta flaga przekazuje okna, szyby i wszystkie ich podziały do ​​iTerm2.

Papież
źródło
2

Prostsza metoda

  1. Włącz XQuartz, aby zsynchronizować schowek
  2. Użyj przekazywania X11, gdy łączysz się ze zdalnym serwerem
  3. Powiąż jak w tmux.conf: bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • gdzie wybrany schowek X znajduje się za rurą

Możesz również wykonać podobne wiązanie w vimie, jeśli chcesz

poważny
źródło
0

Dzięki odpowiedzi papieża wypróbowałem tmux -Cpodpowiedź.

  1. Nie musisz niczego instalować, ponieważ bieżąca wersja tmux obsługuje -Cflagę.
  2. Użyj -CC, ponieważ -Cnie zawsze działa.

Tak więc z tmux -CC(lub tmux -CC attach) tmux jest nawet lepszy niż już jest.

Mamiu
źródło