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!


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.


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.


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.


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ą.


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"

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.


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.


-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ę :)

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.