Невозможно использовать 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связываться с перенаправлением оболочки.

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


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.



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. Прост в установке тоже.


3
tmux-MacOSX-pasteboard теперь и в macports с именем tmux-
pasteboard
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.