Nie można użyć pbcopy podczas sesji tmux

63

Uruchamiając tmux 1.4 zainstalowany z portów na Pantera śnieżna Nie mogę korzystać z wbudowanego pbcopypolecenia OSX .

Poza tmux:

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

Ale wewnątrz tmux:

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

Przeszukałem stronę podręcznika, ale nie mogę znaleźć żadnych opcji, które mogłyby odnosić się do tego zachowania. Nie rozumiem też tmux, dlaczego miałby działać z przekierowaniem powłoki.

Czy ktoś ma jakieś wskazówki?

lagsalot
źródło
1
Pamiętaj, że działa to xclipw systemie Linux. Nawiasem mówiąc, echo pbpastepowinien dać „pbpaste”.
Dennis Williamson,

Odpowiedzi:

75

Korzystanie z homebrew

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

lub Macports

sudo port install tmux-pasteboard

Wstaw na początek ~ / .tmux.conf

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

Możesz zamienić zshna dowolną używaną powłokę, aby zapewnić przenośność, której prawdopodobnie powinieneś użyć $SHELL.

Zaczerpnięte z => robots.thoughtbot.com

William Bettridge-Radford
źródło
6
użyj, bashjeśli jesteś na bashu zamiastzsh
trzy
mój bash nie został poprawnie zainicjowany (.bashrc, .bash_profile nie pochodzi). Jak to zrobić, aby to zrobić?
Brad Parks,
1
Musisz włączyć tę opcję teraz brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang
4
Bardziej niezawodną opcją dla tmux.conf jestset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister
5
opcja --wrap-pbcopy-and-pbpastezostała wycofana za pomocą --with-wrap-pbcopy-and-pbpastezamiast tego!
TaeL,
11

Kiedy tmuxodłącza się od konsoli (w celu obsługi dołączania / odłączania), robi to w sposób, który nie pozwala już na komunikację z GUI.

Poprawki Apple'a do GNU screenużywają prywatnego wywołania systemowego do odłączania się w inny sposób. W narzędziu do śledzenia błędów Macports znajduje się łatka, która powoduje pbcopy/ pbpastedziała ponownie. Przekazałem go również do repozytorium Homebrew, gdzie zostało krótko zaakceptowane, a następnie cofnięte.

Wynika to z faktu, że po zastosowaniu tej poprawki powoduje zawieszenie się tmux podczas ponownego dołączania do sesji.

Aby uzyskać więcej informacji, zobacz żądanie ściągnięcia na github dla projektu Homebrew.

David Goodlad
źródło
To miałoby sens ... z wyjątkiem tego, że jeśli uruchomię, powiedzmy, open .w sesji tmux, dobrze otworzy okno Findera, więc „nie pozwala już na komunikację z GUI” nie wydaje się całkiem dokładne?
jamesdlin
5

Znalazłem projekt github, który otacza tmux tak, że pbpaste i pbcopy działają i nie ma opisanych problemów, które spowodowały usunięcie łatki przez Homebrew. Jest dość łatwy do zainstalowania, wystarczy odrobina kompilacji i jedna linia w pliku .tmux.conf

Homebrew miał łatkę, ale jak wspomnieli inni, została wycofana, ponieważ spowodowała problemy z ponownym podłączeniem.

Wystąpił problem dotyczący tmux , ale został on zamknięty, ponieważ autor tmux nie ma komputera Mac do przetestowania. Plik README w projekcie github tmux-MacOSX-pasteboard zawiera świetne szczegóły na temat tego, dlaczego łatanie tmux jest trudne w tym przypadku, oraz kilka innych informacji dotyczących tej sytuacji. Działa dla mnie na OSX 10.6 i czytanie kodu wygląda na to, że zadziała również dla 10.5.

mmrobins
źródło
1

Tutaj jest bilet otwarty: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Data: 28.02.2010 11:20:57 UTC Nadawca: nicm

Oczywiście nie ma żadnego powodu, dla którego nie można po prostu pokazać potoku Tmux.

Data: 28.02.2010 11:20:05 UTC Nadawca: nicm

Nie, chyba że ktoś wyśle ​​mi kod do zrobienia tego lub sprzęt z OS X na nim.

Próbowałem potokować showb do pbcopy i to nie działało.

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

taras
źródło
1

Używam tmux-MacOSX-pasteboard zarówno na Snow Leopard, jak i Lion, a to poprawia funkcjonalność pbcopy / pbpaste dla ciebie w tmux. Łatwy w instalacji.

wyattdanger
źródło
3
tmux-MacOSX-pasteboard jest teraz także w Macports o nazwie tmux-
pasteboard