Синхронізуйте картон між віддаленим сеансом tmux та локальною картоною Mac OS


18

Налаштування: я використовую iTerm2 на MacOS для підключення до віддаленого сервера. Віддалений сервер працює tmux, в якому я відкриваю файли та редагую під час сеансів vim.

Проблема: я не можу скопіювати / вставити між віддаленим сеансом tmux та локальним клієнтом iTerm. Я можу використовувати alt / option + вибір миші iTerm 2 для вибору тексту, але це копіюється на декілька панелей vim / tmux - погано.

Чи є якесь елегантне рішення, щоб зробити вибір на панелях tmux синхронізуватись між віддаленою картоною та локальною (картонна карта MacOS)? Я бачив простір імен користувачів, що повторюються , але я впевнений, що він не робить те, що я хочу.


3
Це справді проблема tmux? Мені здається, у вас загалом однакова проблема, пов’язана лише з ssh.
kejadlen

3
Це може бути не проблема tmux, але це проблема робочого процесу. Я не можу бути єдиним, хто має цю точну проблему - саме тому мені цікаво, що роблять інші люди, щоб їх обійти.
bhargav

Відповіді:


13

Отже, коли ви запускаєте сервер на сервер, ви можете використовувати зворотне тунелювання, щоб ви могли поспілкуватися з вашою машиною OSX для надсилання команд pbcopy.

ssh -R 1234:localhost:22 remoteServer

Замініть 1234будь-який відкритий порт віддаленим сервером. Потім на віддаленому сервері можна запустити:

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

Це повинно підключитися назад до OSX і надіслати до нього вміст буфера копії tmux. Ви можете скористатися клавішами ssh, щоб запобігти введенню пароля на вашій машині OSX.

Якщо це працює, ви можете створити свої вкладки tmux.

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

Слід зазначити, що для цього вам потрібно буде ввімкнути віддалений обмін в OSX.

Вторинний варіант:

Оскільки ви використовуєте OSX, якщо ви також використовуєте iTerm2, ви можете встановити http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203.tar.gz&can = 2 & q = на ваших серверах.

Це в основному власний tmux, що підтримує прапор "-C". Цей прапор передає вікна, панелі та всі їх розбиття на iTerm2.



2

Більш простий метод

  1. Увімкніть XQuartz для синхронізації буфера обміну
  2. Використовуйте переадресацію X11 під час підключення до віддаленого сервера
  3. Майте прив’язку, як у своєму tmux.conf: bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • де буфер обміну X на ваш вибір - після труби

Якщо ви хочете, ви також можете зробити подібну прив'язку у vim


0

Завдяки відповіді папи я спробував tmux -Cпідказку.

  1. Вам нічого не потрібно встановлювати, оскільки поточна версія tmux підтримує -Cпрапор.
  2. Використовуйте -CC, адже -Cце не завжди працює.

Так що з tmux -CC(або tmux -CC attach) tmux навіть кращий, ніж він є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.