Невозможно использовать pbcopy во время сеанса tmux

63

Запуск tmux 1.4 установлен из портов на Snow-Leopard Я не могу использовать встроенную pbcopyкоманду OSX .

Вне tmux:

> echo "abc" | pbcopy
> echo $(pbpaste) # or using ^v
abc

Но внутри tmux:

> echo "123" | pbcopy
> echo $(pbpaste)
abc

Я просмотрел справочную страницу, но не могу найти какие-либо параметры, которые могут относиться к этому поведению. Я также не могу понять, зачем tmuxсвязываться с перенаправлением оболочки.

У кого-нибудь есть какие-нибудь подсказки?

lagsalot
источник
1
Обратите внимание, что это работает xclipв Linux. Кстати, echo pbpasteдолжен привести к "pbpaste".
Деннис Уильямсон

Ответы:

75

Использование доморощенного

brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste

или Macports

sudo port install tmux-pasteboard

Добавьте в начало ~ / .tmux.conf следующее

set-option -g default-command "reattach-to-user-namespace -l zsh"

Возможно, вы захотите заменить zshлюбую оболочку, которую вы используете, для переносимости, которую вы, вероятно, должны использовать $SHELL.

Взято из => robots.thoughtbot.com

Уильям Беттридж-Рэдфорд
источник
6
используйте, bashесли вы на bash вместоzsh
три
мой bash не инициализирован правильно (.bashrc, .bash_profile не получен). Как это сделать, чтобы сделать это?
Брэд Паркс
1
Должен включить опцию сейчас brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ян Ян
4
Более надежный вариант для tmux.confset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister
5
опция --wrap-pbcopy-and-pbpasteустарела, используя --with-wrap-pbcopy-and-pbpasteвместо этого!
TaeL
11

Когда tmuxотсоединяется от консоли (для поддержки присоединения / отсоединения), он делает это таким образом, чтобы он больше не мог взаимодействовать с графическим интерфейсом.

Патчи Apple к GNU screenиспользуют частный системный вызов для отключения другим способом. В трекере ошибок Macports есть исправление, которое заставляет pbcopy/ pbpasteснова работает. Я также представил его в репозиторий Homebrew, где он был кратко принят, а затем отозван.

Это связано с тем, что при применении этого патча происходит сбой tmux при повторном подключении к сеансу.

Посмотрите запрос на github для проекта Homebrew для получения дополнительной информации.

Дэвид Гудлад
источник
Это имело бы смысл ... за исключением того, что если я, например, запускаю open .сеанс tmux, он просто прекрасно открывает окно Finder, так что "больше не позволяет ему общаться с графическим интерфейсом", не кажется достаточно точным?
Джеймсдлин
5

Я нашел проект github, который упаковывает tmux так, чтобы pbpaste и pbcopy работали и не описывали проблем, из-за которых Homebrew удалил патч. Его довольно легко установить, просто небольшая часть компиляции и одна строка в вашем .tmux.conf

У Homebrew был патч, но, как уже упоминалось, он был отменен, потому что вызывал проблемы с повторным подключением.

Возникла проблема с tmux , но она была закрыта, потому что у автора tmux нет Mac для тестирования. README в проекте github tmux-MacOSX-pasteboard содержит много подробностей о том, почему в этом случае сложно исправить tmux, и кучу другой информации, касающейся ситуации. Он работает на OSX 10.6 для меня, и чтение кода выглядит так, как будто оно будет работать и для 10.5.

mmrobins
источник
1

Здесь есть открытая заявка: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Дата: 2010-02-28 11:20:57 UTC Отправитель: nicm

Конечно, нет причин, по которым вы не можете просто показать tmux showb.

Дата: 2010-02-28 11:20:05 UTC Отправитель: nicm

Нет, если кто-то не отправит мне какой-нибудь код для этого или какое-то оборудование с OS X на нем.

Я попытался передать showb в pbcopy, и это не сработало.

~: echo "12345"
12345
[use copy-mode to copy "12345"]
~: tmux showb
12345
~: tmux showb | pbcopy
~: pbpaste

терраса
источник
1

Я использую tmux-MacOSX-pasteboard на Snow Leopard и Lion, и он исправляет функциональность pbcopy / pbpaste для вас в tmux. Прост в установке тоже.

wyattdanger
источник
3
tmux-MacOSX-pasteboard теперь и в macports с именем tmux-
pasteboard