Skopiuj do schowka z Tmux w El Capitan

19

Jestem całkiem zadowolony ze zmian w Terminalu w El Capitan (patrz np. To pytanie ).

Nie mogę jednak dowiedzieć się, jak włączyć kopiowanie do schowka systemowego z poziomu Tmux. Na przykład, skoro jestem teraz w stanie poprawnie zaznaczyć tekst w Tmux za pomocą myszy, jak mogę skopiować zaznaczony tekst do schowka, oprócz własnego bufora Tmux?

Mam w swoim tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Próbowałem zmienić ostatnią linię na

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

ale to naprawdę nie działało. Byłbym wdzięczny za sugestie!

Dzięki!

syfij
źródło
Cmd-C nie działa?
nohillside
1
@partix - nie, ponieważ skopiowany tekst jest automatycznie odznaczany po zwolnieniu przycisku myszy (lub gładzika). Oczywiście działa w Terminalu, ale nie z Tmuxa w terminalu.
siphiuel
Aktualizacja do Tmux 2.1 przerwała przewijanie myszy w panelach Tmux.
siphiuel

Odpowiedzi:

27

Właśnie znalazłem bardzo proste rozwiązanie, jak ponownie włączyć kopiowanie za pomocą Cmd + C.

W domyślnej aplikacji Terminal przejdź do Widok -> „Zezwalaj na raportowanie myszy” i odznacz ją. Otóż ​​to.

PS: Oczywiście nowe fajne funkcje, takie jak przeciąganie podzielonego ekranu w tmux przestają działać po odznaczeniu raportowania myszy.

Oplatek
źródło
PS: Użyłem wcześniej rozwiązania @siphiuel, które również działa dobrze.
Oplatek
1
Dziękuję Ci!!! To jest najprostszy sposób! Tyle, że historia jest zepsuta. Widzę tylko część hitu
Sato
Super miły. To działa
ShikharDua
i działa to również w przypadku zdalnej sesji tmux; Myślę, że bind-key ... copy-piperozwiązanie może działać tylko wtedy, gdy jest to lokalna sesja tmux. Z drugiej strony, może jeśli wykonasz zdalną sesję tmux w ramach lokalnej sesji tmux, może to zadziałać? W każdym razie, odznaczenie „Zezwalaj na raportowanie myszy” działało dla mnie, a nawet istnieje skrót ⌘-R (Cmd-R), abyś mógł szybko go wyłączyć, aby wykonać kopię, a następnie włączyć ponownie.
Aaron Wallentine
24

Jeśli używasz iTerm2 3.x, możesz włączyć kopiowanie / wklejanie, włączając Applications in terminal may access clipboard:

wprowadź opis zdjęcia tutaj

Po prostu zaznacz tekst za pomocą myszy, aby skopiować go do schowka OS X!

Możesz również wkleić ze schowka OS X do tmux zwykłym Cmd+ V.

Jerome Dalbert
źródło
2
to było dla mnie najłatwiejsze rozwiązanie.
lennart
To jest niesamowite!
mljrg,
17

Przytrzymując wciśnięty klawisz funkcyjny, możesz także zaznaczać i kopiować do schowka za pomocą Apple + C.

amohr
źródło
Szukamy czegoś więcej niż odpowiedzi w jednym wierszu. Spróbuj rozszerzyć swoją odpowiedź, aby podać dalsze szczegóły.
Allan
2
@Allan To kompletna odpowiedź, nawet jeśli jest to tylko jedna linia. To takie proste.
pkuhar
btw, okazało się, że działa tylko na klawiaturze laptopa, nie podłączonych klawiaturach :(
amohr 21.04.19
8

Myliłem się, stwierdzając, że copy-pipeto nie działa. Robi to, a copy-selectionnastępnie staje się zbyteczne, ponieważ copy-pipeoba kopiują tekst na karton Tmux, a potoki do dowolnego polecenia powłoki. Więc działa następująca linia:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

Należy jednak nacisnąć yprzed zwolnieniem przycisku myszy. Natknąłem się na to w dokumentacji wtyczki tmux-yank :

„Podczas dokonywania wyboru przy użyciu trybu myszy myszy w trybie tmux lub trybu myszy myszy w trybie myszy nie można polegać na domyślnym działaniu„ zwolnij mysz po zaznaczeniu do kopiowania ”. Zamiast tego naciśnij y przed zwolnieniem myszy.”

Więc to działa, ale z nieco denerwującą potrzebą naciśnij y, aby skopiować tekst zaznaczony myszą.

syfij
źródło
3
Jeśli używasz Terminal.app: w systemie macOS Sierra nie będzie to działać z powodu regresji w zachowaniu Terminal.app. Będziesz musiał ponownie użyć hacka „reattach-to-user-namespace”.
m1keil
1
Zgadzam się na komentarz @ m1keil. Co więcej, z jakiegoś powodu musiałem skompilować przestrzeń przyłączania do brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste
nazwy
4

Korzystając z tmux w wersji 2.2 lub nowszej, dodaj do pliku tmux.conf:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Kyle Kloepper
źródło
Działa dla El Capitan 10.11, tmux 2.7
Homer
3

Odpowiedź @Oplatek obowiązuje

W domyślnej aplikacji Terminal przejdź do Widok -> „Zezwalaj na raportowanie myszy” i odznacz ją.

Ale w ten sposób nie moglibyśmy przewijać ekranu za pomocą myszy.

Oto inny sposób bez wyłączania Allow mouse reporting: Naciśnij Fni zaznacz tekst za pomocą myszy.

secfree
źródło
0

Używając tmux 2.2, OS X El Capitan, Terminal w wersji 2.6.1 (domyślnie dostarczany z El Capitan), następująca konfiguracja działa bez zarzutu (jak dotąd).

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Aby skopiować, naciśnij lewy przycisk myszy, zaznacz tekst i puść. Zaznaczony tekst znajduje się następnie w schowku i można go jak zwykle wkleić Cmd+ v.

Kjell
źródło
-2

znajduję tylko jeden sposób

otwórz ustawienia / profile terminala w informacji o terminalu zmień typ terminala z xterm-256 na ansi otwórz nowe okno terminala i ciesz się :)

Levan Petrosian
źródło