Не вдається використовувати pbcopy під час сеансу tmux


63

Запуск tmux 1.4, встановлений з портів на сніговому леопарді, я не в змозі використовувати вбудовану pbcopyкоманду OSX .

Поза tmux:

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

Але всередині tmux:

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

Я переглянув довідкову сторінку, але не можу знайти жодних варіантів, які можуть стосуватися такої поведінки. Я також не можу зрозуміти, чому tmuxб возитися з перенаправленням оболонки.

У когось є підказки?


1
Зауважте, що це працює за допомогою xclipLinux. До речі, 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якщо ви замішаєте на башzsh
три

мій bash не ініціалізований правильно (.bashrc, .bash_profile не поставлений). Як це зробити для цього?
Бред Паркс

1
Потрібно включити варіант зараз brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ян Ян

4
Більш надійним варіантом для tmux.conf єset-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 просто чудово, тож "більше не дозволяє йому спілкуватися з графічним інтерфейсом", не здається досить точним?
jamesdlin

5

Я знайшов проект github, який обертає tmux, щоб pbpaste та pbcopy працювали і не мали описаних проблем, які змусили Homebrew видалити патч. Встановити його досить просто, лише невеликий шматочок компіляції та один рядок у вашому .tmux.conf

Homebrew мав виправлення, але, як згадували інші, це було відхилено, оскільки це спричинило проблеми з повторним прив’язкою.

Проти tmux була подана проблема , але вона закрита, оскільки у автора tmux немає Mac для перевірки. У проекті README на папері github tmux-MacOSX є великі відомості про те, чому виправлення 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

За винятком випадків, коли хтось надішле мені якийсь код для цього чи якесь обладнання з ОС X на ньому.

Я спробував трубопроводити showb до pbcopy, і це не спрацювало.

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


1

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


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