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?


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


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.


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.



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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.