17

Настройка: я использую iTerm2 на MacOS для подключения к удаленному серверу. Удаленный сервер запускает tmux, в котором я открываю файлы и редактирую в сеансах vim.

Проблема: я не могу скопировать / вставить между удаленным сеансом tmux и локальным клиентом iTerm. Я могу использовать выбор alt / option + mouse в iTerm 2 для выделения текста, но это копирует несколько панелей vim / tmux - плохо.

Есть ли какое-нибудь элегантное решение для синхронизации выборок в панелях tmux между удаленным монтажным столом и локальным (MacOS монтажным щитом)? Я видел пространство имен reattach-to-user-name, но я почти уверен, что оно не делает то, что я хочу.

4 ответа4

12

Поэтому, когда вы заходите на сервер по ssh, вы можете использовать обратное туннелирование, чтобы вы могли общаться с вашим компьютером 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, если вы хотите, а также

2

Я думаю, что эта проблема была решена лучше:

http://seancoates.com/blogs/remote-pbcopy

0

Благодаря ответу Папы, я попробовал подсказку tmux -C .

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

Так что с tmux -CC (или tmux -CC attach) tmux даже лучше, чем он есть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .