Pobieranie tmux w celu skopiowania bufora do schowka

118

Próbuję znaleźć dobry sposób na skopiowanie tego, co mam w buforze tmux do mojego schowka. Próbowałem kilku różnych rzeczy

bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer

co zbliża mnie dość blisko, wszystko co muszę zrobić, to nacisnąć control-d po tym, jak zrobię prefiks-p.

Próbowałem to naprawić, robiąc to

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE'

Ale to po prostu nie działa. W rzeczywistości, jeśli sparuję to do sprawiedliwego

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE'

nic nie robi, więc zakładam, że podzielone okno nie lubi << w poleceniu powłoki.

Jakieś pomysły?

Edycja: Możesz pominąć, select-pane -t 2jeśli chcesz, to nie jest tak naprawdę ważne. Po prostu używam określonego układu, a panel 2 jest tym, który wolę podzielić, gdy robię coś innego, aby domyślnie przechodziło do moich powiązań obejmujących podziały.

Cyfrowe moce
źródło
2
Zapoznaj się z odpowiedzią poniżej 2014, która jest nowsza niż niektóre inne. Poleca wtyczkę tmux yank, która działa bardzo dobrze.
dmonopoly
Aby uzyskać odpowiedź, która jest aktualna w wersji Tmux 2.4 (wydanej w kwietniu 2017 r.) I 2.6, zobacz moją odpowiedź
Jason Axelson

Odpowiedzi:

26

Tutaj dokumenty wymagają nowej linii. Na przykład w skrypcie powłoki można pisać

cat <<EOF >somefile; echo  done
file contents
EOF

Nie sądzę, aby tmux pozwalał ci umieszczać tam nowe linie, a nawet gdyby tak było, nie byłoby to dobre podejście. Co się stanie, jeśli same dane zawierają HEREsame w wierszu (np. Ponieważ kopiujesz swoje dane .tmux.conf)?

Proponuję zapisać zawartość bufora do pliku tymczasowego. Niesprawdzone:

bind-key p save-buffer ~/.tmux-buffer \; run-shell "xsel -i -b <~/.tmux-buffer && rm ~/.tmux-buffer"

Jeśli używasz tego polecenia w dwóch oddzielnych instancjach tmux, istnieje warunek wyścigu. Nie wiem jak to rozwiązać.

Gilles
źródło
Dzięki, że działa idealnie, warunki wyścigu nie są dla mnie problemem, używam tylko 1 sesji.
Digital Powers
Aby uniknąć warunków wyścigu, sugeruję użycie tego, mktempktóry jest powszechnie dostępny
Żal
@ Skrót Dobry pomysł. W tym przypadku użycie PID procesu tmux również działałoby i prawdopodobnie byłoby łatwiejsze do ustawienia ( $PPIDw powłoce uruchomionej przez tmux). Ale jak uzyskać nazwę pliku zmiennej (jakkolwiek jest skonstruowana) w argumencie save-buffer? Chyba save-buffer - | …jak w odpowiedzi Grauwolfa , która całkowicie eliminuje plik tymczasowy?
Gilles
Masz rację, moja wina, nie byłoby to możliwe.
Smutek
93

To powinno działać:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i"
Grauwolf
źródło
1
Tak się dzieje. To o wiele ładniejsze niż używanie pliku tymczasowego, dzięki. Nawet automatycznie kopiuje wiele sesji jednocześnie dzięki TMUXzmiennym środowiskowym.
Gilles,
22
Lepszą instrukcją C-pbyłoby: bind C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer"- brak problemów z cytowaniem lub ograniczeniami wiersza poleceń.
docwhat
8
Czy tmux ma hak do kopiowania zaznaczenia do schowka, gdy jest w środku copy-mode?
Ehtesh Choudhury
1
xclip -oopcja nie zadziałała dla mnie, więc zmieniłem nabind C-c run "tmux save-buffer - | xclip -selection c"\; display-message "Buffer copied to clipboard"
Pawka,
6
Za każdym razem, gdy robię kopię w ten sposób, tmux przestaje reagować na wszelkie skróty klawiaturowe. Jakieś rozwiązanie tego?
skrat
41

Prostsze rozwiązanie dla Mac OS-X

To opiera się na odpowiedzi Alexa i wykorzystuje rzeczy, które w tamtym czasie nie istniały.

Jeśli używasz homebrew (a jeśli nie, dlaczego nie jesteś?), Możesz po prostu to zrobić:

brew install reattach-to-user-namespace

Następnie w ~/.tmux.conf:

set-option -g default-command "reattach-to-user-namespace -l zsh" # or bash...
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

Aby skopiować bufor z tmux (powinieneś już coś skopiować za pomocą tmux) na tekturę Mac, użyj <tmux-key> Control-c. Będzie teraz dostępny dla Command-vlubpbpaste

Aby wkleić coś z tektury Mac, użyj <tmux-key> Control-v.

docwhat
źródło
2
Ta odpowiedź jest znakomita. Użyłem, tmux show-bufferco spowodowało problemy z zawijaniem linii, tmux save-buffer -rozwiązało to.
event_jr
Co robi -na końcu tmux save-buffer -?
hekevintran
Emituje na standardowe save-bufferwyjście. Możesz zastąpić go -nazwą pliku i tam go zapisze. Zapobiega to pisaniu (i czyszczeniu) pliku.
docwhat
1
Począwszy od OS X 10.10, ponowne przyłączenie do przestrzeni nazw użytkownika nie jest już konieczne. Prawie każdy samouczek i dokumentacja dotycząca tmux i OS X wspomina o tym, ponieważ kilka lat temu nie było łatwo kopiować i wklejać. Obecnie (przeważnie) działa to od razu po wyjęciu z pudełka.
Rafael Bugajewski,
40

copy-pipeKomendy został dodany w wersji 1.8. Kopiuje zaznaczenie do bufora tmux i potokuje go do polecenia. Teraz nie ma potrzeby wiązania przedrostka. Oto przykład:

bind -t vi-copy y copy-pipe "xclip"

# For OS X users:
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

Teraz, gdy masz zaznaczony tekst copy-mode, yskopiuje go do bufora tmux, a także do schowka systemu operacyjnego. Jednak nie pomaga, jeśli chcesz pobrać tekst ze schowka do bufora tmux.

Tyler Holien
źródło
1
Działa idealnie i jest najprostszym rozwiązaniem z grona.
Naseer
2
Nie działa dla mnie pod Linuksem, ten jednak działa: unix.stackexchange.com/a/131074/13601
Sebastian Blask
1
Od wersji OS X 10.10 wydaje się, że reattach-to-user-namespacenie jest to konieczne.
Chris
działa na el
capitan
2
To już nie działa dla Tmux 2.4, który został wydany 20 kwietnia 2017 r. Zamiast tego musisz użyć bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip"i dla OS X:bind-key -T copy-mode-vi y send-keys -X copy-pipe "reattach-to-user-namespace pbcopy"
Jason Axelson
16

Możesz wypróbować wtyczkę tmux-yank . Umożliwia kopiowanie bezpośrednio do schowka systemowego (OS X i Linux) i niektórych innych korzyści, takich jak szarpanie bieżącej linii powłoki.


źródło
7
Jest to świetne, czyste rozwiązanie i powinno być rozważane bardziej, ponieważ jest to znacznie nowsza odpowiedź niż inne. Dzięki za udostępnienie!
monopol
9

Po wypróbowaniu innego rozwiązania, oto moja końcowa konfiguracja:

# move x clipboard into tmux paste buffer
bind C-p run "xclip -o | tmux load-buffer -
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i -selection clipboard"

użycie bufora składowania zamiast bufora pokazu daje rzeczywiste dane bez danych, jak pokazano z podziałem linii, gdy jesteś w podziale.

Używam tego również, aby rozpocząć zaznaczanie / kopiowanie w trybie kopiowania tmux:

bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Wydaje mi się, że można scalić wybór kopii za pomocą klawisza „Y” ORAZ przenieść go do schowka x.

Ownatik
źródło
Próbowałem połączyć oba polecenia, jak wspomniałeś, bez powodzenia. Wszelkie pomysły, jak to zrobić?
Rafael Vega
9

Oto próba kompleksowej odpowiedzi.

Najpierw mała historia

Kiedy pytanie zostało zadane po raz pierwszy (czerwiec 2011 r.), Kopiowanie tekstu z Tmux do schowka musiało być dwuetapowym procesem, najpierw skopiuj zaznaczony tekst do bufora Tmux, a następnie skopiuj tekst z bufora Tmux do schowka systemowego.

W 1.8 (marzec 2013) copy-pipedodano polecenie, które pozwala skopiować zaznaczony tekst bezpośrednio do schowka systemowego (lub innego miejsca docelowego).

Następnie w 2.4 (kwiecień 2017 r.) Tabele kluczy zostały znacznie zmienione, przez co wiele odpowiedzi na tej stronie jest nieaktualnych.

Odpowiedź na oryginalne pytanie

Linux :

bind-key C-y run-shell "tmux save-buffer - | xclip -i -r > /dev/null" \; display-message "Copied tmux buffer to selection"
bind-key C-Y run-shell "tmux save-buffer - | xclip -i -r -selection clipboard > /dev/null" \; display-message "Copied tmux buffer to clipboard"
bind-key C-p run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer"

Mac :

Jeśli używasz homebrew , powinieneś zainstalować reattach-to-user-namespace, uruchamiając następujące polecenie w terminalu:

brew install reattach-to-user-namespace

Następnie w pliku ~ / .tmux.conf:

bind-key C-y run-shell "tmux save-buffer - | reattach-to-user-namespace pbcopy" \; display-message "Copied tmux buffer to clipboard"
bind-key C-p run-shell "reattach-to-user-namespace pbpaste | tmux load-buffer - ; tmux paste-buffer"

Metoda krótsza (skopiuj i wklej zaznaczenie prosto ze schowka do schowka dla tmux> 2.4)

Uwaga: istnieją dwie wersje dla systemu Linux, ponieważ system Linux ma główny i pomocniczy schowek (znany również jako wybór).

Linux :

bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip -r" \; display-message "Copied to selection"
bind-key -T copy-mode-vi Y send-keys -X copy-pipe "xclip -r -selection clipboard" \; display-message "Copied to clipboard"
bind-key C-p run-shell "xclip -o | tmux load-buffer - && tmux paste-buffer"

Mac :

bind-key -T copy-mode-vi y send-keys -X copy-pipe "reattach-to-user-namespace pbcopy" \; display-message "Copied to clipboard"

Dostosowywanie tych poleceń

  • Jeśli nie chcesz, aby polecenie mówiło ci, co zrobiło w wierszu stanu, usuń po prostu display-message(jak również \;przed nim).

  • Jeśli używasz trybu kopiowania w stylu Emacsa zamiast vi, zamień dowolne wystąpienie na copy-mode-vijustcopy-mode

  • Jeśli używasz Linuksa i chcesz używać xselzamiast xclipzastąpić xclip -rz xsel -i -poraz xclip -ozxsel -o -p

  • -rW xclip -rjest opcjonalne, usuwa ostatnią linią. Przydaje się do kopiowania poleceń, a kiedy je wkleisz, nie zostaną natychmiast wykonane.

  • Jeśli tunelujesz przez SSH, powinieneś skonsultować https://unix.stackexchange.com/a/354581/14252

Bibliografia:

Jason Axelson
źródło
Czy to polecenie jest bind-key C-p run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer"nadal ważne? dlatmux>2.4
alpha_989
7

Nie lubię dodatkowych naciśnięć klawiszy, więc chciałem czegoś bardziej ambitnego. Wejdź do trybu kopiowania za pomocą [, zaznacz odpowiedni tekst, a następnie naciśnij], aby skopiować tekst do schowka.

Ponadto tmux lubi umieszczać znaki nowej linii w wyrażeniach, które się zawijają (a co dziwniejsze, te nowe linie są w niewłaściwym miejscu! Nie są tam, gdzie wyrażenie jest zawijane na ekranie). Więc chciałem C-] skopiować wyrażenie usuwające znaki nowej linii.

Na Tmuxie 1.6 próbowałem tego:

bind [ copy-mode
bind -t vi-copy ] run "tmux send-keys Enter; tmux show-buffer | xclip -i -selection clipboard;"
bind -t vi-copy C-] run "tmux send-keys Enter; tmux show-buffer | perl -pe 's/\n//' | xclip -i -selection clipboard;"

ale to nie zadziałało, ponieważ tmux nie wydaje się być zadowolony z wiązania złożonych rzeczy do tabeli vi-copy. Więc zamiast tego zrobiłem to:

bind [ copy-mode \;                                                        \
    bind -n ] run                                                          \
    "tmux send-keys Enter;                                                 \
     tmux show-buffer | xclip -i -selection clipboard;                     \
     tmux unbind -n C-];                                                   \
     tmux unbind -n ]" \;                                                  \
    bind -n C-] run                                                        \
    "tmux send-keys Enter;                                                 \
     tmux show-buffer | perl -pe 's/\n//' | xclip -i -selection clipboard; \
     tmux unbind -n C-];                                                   \
     tmux unbind -n ]"

Prowadzi to do dziwnych rzeczy (] lub C-] będzie działać śmiesznie przy następnym użyciu, ale tylko raz), jeśli wyjdziesz z trybu kopiowania w inny sposób niż] lub C-]. Można to naprawić za pomocą kilku dodatkowych wyobrażeń, ale wyobrażam sobie to przez większość czasu.

Leif
źródło
stackoverflow.com/a/10954274/69663 zauważa, że ​​na stronie sourceforge.net/tracker/…
unhammer,
4

Na Arch Arch Wiki istnieje rozwiązanie wykorzystujące xclip:

# move tmux copy buffer into x clipboard
bind-key C-y save-buffer /tmp/tmux-buffer \; run-shell "cat /tmp/tmux-buffer | xclip"

https://wiki.archlinux.org/index.php/Tmux

jasonwryan
źródło
2
Czy tmux save-bufferbezpiecznie tworzy plik we współdzielonym katalogu? W przeciwnym razie włożenie go /tmpjest dziurą bezpieczeństwa. Korzystanie z catpliku jest bezużyteczne i brakuje pliku tymczasowego. To jest kwestia xselvs xclip, które są tutaj równoważne, i masz moje (samodzielnie napisane) rozwiązanie.
Gilles
1
Dzięki Gilles. Zaktualizuję wiki, aby odzwierciedlała twoje punkty.
jasonwryan
4

Rozwiązanie dla Mac OS X. Wykonaj następujące 2 kroki:

  1. Użyj obejścia Chrisa Johnsena: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard

  2. Dodaj ten kod do konfiguracji tmux (~ / .tmux.conf)

# paste clipboard into tmux buffer
bind v run-shell "reattach-to-user-namespace -l zsh -c 'tmux set-buffer \\"$(pbpaste)\\"; tmux paste-buffer'"
# put tmux buffer into x clipboard
bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"

Alex Gaudio
źródło
4

Nieco zmodyfikowany wariant zaakceptowanej odpowiedzi, którą ugotowałem.

Wolę również używać schowka systemowego (Ctrl-C, Ctrl-V) oprócz primarydomyślnego schowka xclip (tego, który otrzymujesz z wyborem myszy i środkowymi kliknięciami myszy). Aby wybrać schowek systemowy, musisz przekazać -selection clipboardargument do xclip.

Również podczas kopiowania bufora do schowka podoba mi się możliwość wybrania bufora, który chcę skopiować. Dokonuje się tego za pomocą choose-buffer, a następnie przepuszczanie bufor argumentu save-bufferużyciem -b %%.

# Copy into clipboard
bind C-c choose-buffer "run \"tmux save-buffer -b %% - | xclip -i -selection clipboard\""
# Paste from clipboard
bind C-v run "xclip -o -selection clipboard | tmux load-buffer - ; tmux paste-buffer"
# Copy into primary
bind C-y choose-buffer "run \"tmux save-buffer -b %% - | xclip -i \""
# Paste from primary
bind C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer"

AKTUALIZACJA: Jakoś z tmux 1.8 i dwiema moimi instalacjami openSUSE 12.2, widzę zawieszenie, gdy tmux run-shelljest wywoływany z xclipodczytem ze standardowego wejścia na potoku. Zamiast tego postanowiłem xselspróbować i to wydaje się działać. Są to równoważne przypisania klawiszy xsel. Użyłem również &&łańcucha poleceń w postaci pasty, aby uzyskać większą niezawodność.

# Copy into clipboard
bind C-c choose-buffer "run \"tmux save-buffer -b '%%' - | xsel -i -b\""
# Paste from clipboard
bind C-v run "xsel -o -b | tmux load-buffer - && tmux paste-buffer"
# Copy into primary
bind C-y choose-buffer "run \"tmux save-buffer -b '%%' - | xsel -i\""
# Paste from primary
bind C-p run "xsel -o | tmux load-buffer - && tmux paste-buffer"
Tuxdude
źródło
4

Oto moja dość długa odpowiedź, która powinna rozwiązać dwa główne problemy z użyciem xclipa do skopiowania bufora ze zdalnej (ssh) sesji tmux:

1. Nieodpowiedzialny xclip

Dla mnie @ Grauwolf za odpowiedź z xclipnie działa (renderuje tmux okienku całkowicie flegmatyczny). Dowiedziałem się, dlaczego na stronie Tmux Arch Arch :

W tym celu można również użyć xclip, w przeciwieństwie do Xsel, działa lepiej w przypadku drukowania surowego strumienia bitów, który nie pasuje do bieżących ustawień regionalnych. Niemniej jednak rozsądniej jest używać xsel zamiast xclip, ponieważ xclip nie zamyka STDOUT po odczytaniu z bufora tmux. Jako taki, tmux nie wie, że zadanie kopiowania zostało zakończone, i nadal czeka na zakończenie xclipa, co powoduje, że tmux nie odpowiada. Obejściem tego problemu jest przekierowanie STDOUT xclipa do / dev / null

Wiązanie powinno być:

bind-key C-y run "tmux save-buffer - | xclip -i -sel clip > /dev/null"

To zadziała, jeśli twoja sesja tmux jest lokalna.

2. xclip nie może połączyć się z X

Jeśli używasz tmux nad ssh -X , są duże szanse, że to nie zadziała bezpośrednio.

Jest tak, ponieważ zmienna powłoki $DISPLAYmusi być ustawiona poprawnie.

Kompletne rozwiązanie

Więc dla mnie kompletnym działającym rozwiązaniem jest umieszczenie następujących wierszy w moim ~/.tmux.conf:

set-option -g update-environment "DISPLAY"
bind-key C-y run "export DISPLAY=`tmux show-env | sed -n 's/^DISPLAY=//p'`; tmux save-buffer - | xclip -i -selection clipboard >/dev/null"
# Or more concise:
bind-key C-y run "tmux save-buffer - | xclip -i -selection clipboard -d `tmux show-env | sed -n 's/^DISPLAY=//p'` >/dev/null

Do wklejenia z podstawowego:

bind-key C-p run "xclip -d `tmux show-env | sed -n s/^DISPLAY=//p` -o | tmux load-buffer - && tmux paste-buffer"

Nie do końca rozumiem, dlaczego $DISPLAYnie jest poprawnie ustawiony podczas pozyskiwania .tmux.conf, dlatego muszę go wyodrębnić za pomocą tmux show-envi sed.

Jeśli masz tmux> = 1.8, możesz dostosować to polecenie za pomocą copy-pipe:

bind-key -t vi-copy y copy-pipe 'xclip -in -selection clipboard -d `tmux show-env | sed -n s/^DISPLAY=//p` >/dev/null'
Plazma Binturong
źródło
/home/linux/.tmux.conf:11: invalid or unknown command: bind-key C-y run "tmux save-buffer - | xclip -i -selection clipboard -d `tmux show-env | sed -n 's[0/0] PLAY=//p'` >/dev/null
użytkownik
@użytkownik sedpolecenie, które wyświetlasz, nie jest tym samym, co napisałem ... Czy to jest to, co napisałeś w swoim .tmux.conf?
PlasmaBinturong
Właśnie skopiowałem i wkleiłem twój kod.
użytkownik
@ użytkownik, dziwne. Może być wiele źródeł błędów. Najpierw sprawdź, czy Twoja oferta jest w porządku. Więc znasz sed? Polecenie powinno być: sed -n s/^DISPLAY=//p. Alternatywnie, można użyć cut: tmux show-env DISPLAY | cut -d'=' -f2. Warto również sprawdzić swoją wersję tmux.
PlasmaBinturong
3

Próbuję znaleźć dobry sposób na skopiowanie tego, co mam w buforze tmux do mojego schowka. Próbowałem kilku różnych rzeczy

W przypadku powiązań w stylu emacsa istnieje kilka różnych opcji. (Styl Vi powinien być podobny?) Typowym wiązaniem do wykonywania „selekcji kopii” w emacsie jest Mw, więc bardzo wygodne byłoby mieć takie samo wiązanie w tmux.

1 - Byłby idealny, ale nie działa (z powodu ograniczenia tmux?)

unbind-key -t emacs-copy M-w
bind-key -t emacs-copy M-w copy-selection\; \
  run-shell "tmux save-buffer - | xsel --input --clipboard"

2 - Kompromis, który działa dobrze dla mnie : Zaakceptuj, używając innego skrótu klawiszowego dla emacs-copy w tmux. Użyj na przykład CMw. (To powiązanie zostanie zdefiniowane „globalnie” - nie tylko w trybie kopiowania - ale przydatne tylko w trybie kopiowania)

bind-key -n C-M-w send-keys M-w\; \
 run-shell "tmux save-buffer - | xsel --input --clipboard" 
Hugo Heden
źródło
3

Wiele z tych odpowiedzi nie działało w moim Ubuntu 14.04 na Zsh as-is. Nie jestem pewien, czy moja powłoka ma z tym coś wspólnego, ale oto moja robocza wersja używania tej strategii do kopiowania i tej do wklejania.

    bind-key -t vi-copy 'v' begin-selection
    bind-key -t vi-copy 'y' copy-pipe "xclip -sel clip -i"
    bind-key ] run-shell "xclip -sel clip -o | tmux load-buffer - ; tmux paste-buffer" 

Niektóre uwagi:

  • w przypadku kopiowania potoków musiałem określić mój schowek za pomocą -sel clip -i. Linia ta łączy bufor yank z tmux i wysyła go do xclip.
  • aby go wkleić, musiałem ponownie określić, z którym schowkiem -sel clip -o

Działa to teraz pięknie w mojej konfiguracji vim / zsh / tmux.

brykietki
źródło
Dziękuję Ci! -sel clip -irozwiązuje problem. Chociaż nie rozumiem, dlaczego trzeba ponownie określić schowek, aby go wkleić (standard ]działa dla mnie)
melekes
1

A ulepszona wersja odpowiedzi @Leif może być:

tmux bind-key '[' run "tmux copy-mode;
tmux bind-key -n ']' run \"tmux send-keys Enter; tmux save-buffer - | xclip -i -selection clipboard;
tmux unbind-key -n ']'\";
tmux bind-key -n q run \"tmux unbind -n ']'; tmux send-keys q\";
tmux bind-key -n C-c run \"tmux unbind -n ']'; tmux send-keys C-c\""

W ten sposób nie ma żadnych konsekwencji, jeśli wyjdziesz z trybu kopiowania w inny sposób poza], powyższy kod jest zawinięty w tundle / tmux-yank wtyczkę tmux do kopiowania tekstu tmux do schowka systemowego, celuje w tmux> = 1.6 w OS X i Linux.

Javier López
źródło
1

W systemie OS-X z tmux w wersji 2.2 lub nowszej będą działać następujące funkcje:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Kyle Kloepper
źródło
1

Używam copyqmenedżera schowka wielowierszowego. (Działa z systemami Windows, OSX, Linux).

  • Dodaj następujące wiersze w ~/.tmux.conf:

    set-window-option -g mode-keys vi
    bind C-y run 'out=`tmux save-buffer - ` && copyq add "$out"'
    
  • cygwinwymaga copyq.exelokalizacji w ~/.bashrc:

    export PATH="$PATH:/cygdrive/c/Program Files (x86)/CopyQ"
    
Oleg Svechkarenko
źródło