Копировать в буфер обмена клиента после выбора мыши с помощью tmux в удаленном сеансе - PullRequest
0 голосов
/ 13 марта 2020

Это мой .tmux.conf

setw -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"

Хорошо работает на linux машине локально. Выбор мыши автоматически копируется в системный буфер обмена.

Однако в удаленном сеансе (iTerm + Ma c) он не работает. Текст не копируется в системный буфер обмена клиента. По-видимому, я должен использовать ОС C 52. Вот вспомогательный скрипт .

. Вы можете использовать скрипт следующим образом:

echo "whatever text" | osc52.sh

Теперь «любой текст» копируется в системный буфер обмена клиента.

Однако я не могу заставить скрипт работать с выбором мыши tmux:

setw -g mouse on
set-option -s set-clipboard off
osc52="~/osc52.sh"
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "$osc52"

Любая помощь приветствуется. Спасибо!

1 Ответ

0 голосов
/ 13 марта 2020

Это не способ использовать ОС C 52. Вы не можете отправить его из скрипта - все выходные данные команд, запущенных из copy-pipe, игнорируются.

Вместо этого вам нужно настроить Сам Tmux, чтобы сделать это. Попробуйте следующее:

1) Удалите команду bind-key и просто оставьте MouseDragEnd1Pane в качестве значения по умолчанию для выбора копии.

2) Измените set-clipboard на set-clipboard on. Не забудьте перезапустить tmux полностью после изменения .tmux.conf.

3) Убедитесь, что TERM вне tmux имеет значение xterm или xterm-256color, чтобы tmux добавил возможность Ms из переопределений терминала по умолчанию. Это должно быть по умолчанию в iTerm2. Убедитесь, что вы не удаляете его из переопределений терминала в .tmux.conf.

4) Я думаю, что в iTerm2 вам нужно включить эту опцию, «Приложения в терминале могут получать доступ к буферу обмена»:

enter image description here

...