Teraz, aby skopiować do schowka systemowego, muszę wybrać tekst myszy w oknie tmux za pomocą Shift
klawisza. A potem muszę uruchomić to polecenie:
tmux save-buffer - | reattach-to-user-namespace pbcopy
Czy jest jakaś szansa na zapisanie do schowka systemowego? Klawisze lub lepiej robią to automatycznie po zwolnieniu Shift.
Moja konfiguracja tmux: https://gist.github.com/3641580
macos
shell
command-line
tmux
tomekfranek
źródło
źródło
osx
, ale odpowiedzi mówią o lewym i środkowym kliknięciu ...Odpowiedzi:
Jeśli używasz iTerm2, możesz kopiować tekst w sesji Tmux, przytrzymując Optionklawisz podczas przeciągania myszą, aby dokonać wyboru.
Wtedy powinno być możliwe wklejenie tekstu w dowolnym miejscu za pomocą Cmd+, Vjak zwykle. Znalazłem go tutaj: http://web.archive.org/web/20131226003700/http://ootput.wordpress.com/2013/08/02/copy-and-paste-in-tmux-with-mouse/
źródło
Jeśli używasz iTerm2 3.x, możesz kopiować / wklejać, włączając
Applications in terminal may access clipboard
:Po prostu zaznacz tekst myszką, aby skopiować go do schowka OS X! Nie ma potrzeby naciskania, Optionjak sugeruje odpowiedź akceptanta.
Możesz także wkleić ze schowka OS X do tmux za pomocą zwykłego Cmd+ V.
źródło
reattach-to-user-namespace
podejścia oparte na podstawach nie działają dla mnie, ponieważ często używam ssh na komputerach z systemem Linux. To rozwiązanie jednak działa świetnie! Dziękuję Ci!set clipboard=unnamed
w tym celu mój vimrcTutaj jest odpowiedź na podobne pytanie: /unix/15715/getting-tmux-to-copy-a-buffer-to-the-clipboard
Znalezione tam rozwiązanie:
# 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 show-buffer | xclip -i"
Sprawdź też: http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/
jeśli ustawiłeś następujące opcje:
okienko wyboru myszy
okno wyboru myszy
zauważysz, że w ogóle nie możesz zaznaczyć tekstu.
hold down the shift key and then left click and drag across the target text. you must also hold down the shift key and then middle click in order to paste the text.
źródło
xclip -o
=>pbpaste
,xclip -i
=>pbcopy
.W przypadku systemu OS X, jeśli używasz aplikacji „Terminal”. Możesz wyłączyć przewijanie myszy i użyć zwykłych funkcji kopiuj / wklej (cmd + c / cmd + v):
lub możesz użyć przewijania myszy i zaznaczyć tekst za pomocą "klawisza fn":
źródło
fn
klucz wskazówka jest wygaszacz życia! wiele osób sugeruje używanie,ALT
ale to nie działa na najnowszym Mac OS XW systemie OSX przy użyciu tmux w wersji 2.2 lub nowszej dodaj do pliku tmux.conf następujące polecenie:
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy" bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
W przypadku tmux w wersji 2.4, ponieważ uprzejmie zdecydowali się zmienić składnię polecenia, powinieneś użyć:
bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"
Pamiętaj, że może być konieczne użycie
reattach-to-user-namespace pbcopy
zamiast zwykłegopbcopy
.źródło
Umieszczenie tego w moim pliku ~ / .tmux.conf działa dla mnie:
bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"
Wszystkie inne potencjalne rozwiązania, które znalazłem, to kopiowanie jakiejś pustej zawartości do schowka OSX.
Jedynym problemem jest to, że wydaje się, że umieszcza znak powrotu karetki na końcu wklejanej treści.
źródło
naciśnij lewy przycisk myszy i przytrzymaj, zaznacz tekst w okienku i nadal przytrzymaj przycisk. następnie naciśnij "y", co zapisuje zaznaczenie w schowku i wychodzi z trybu zaznaczania / kopiowania.
działa tutaj z iTerm 3.1.beta.5, tmux 2.5 i następującą konfiguracją:
### copy & paste ------------------------------------------------------- # Use vim keybindings in copy mode setw -g mode-keys vi # Setup 'v' to begin selection as in Vim bind-key -T copy-mode-vi v send -X begin-selection bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" # Update default binding of `Enter` to also use copy-pipe unbind -T copy-mode-vi Enter bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
źródło
unbind
.copy-mode-vi
podczas gdy starsza wersja używacopy-mode
.naciśnij klawisz Shift, a następnie kliknij myszką !! Sprawdź ten link. http://awhan.wordpress.com/2012/04/18/tmux-copy-paste-with-mouse/
źródło
Udało mi się rozwiązać ten problem za pomocą
CMD
+C
po zaznaczeniu tekstu za pomocąFN
+mouse drag with left button down
ztmux
okna wTerminal
aplikacji macOS High Sierra.źródło
Zrobiłem dziś wersję za pomocą netcata, która jest dość prosta.
https://github.com/base698/tmux-copy-paste-mac-osx
Oto tmux.conf:
bind -t vi-copy 'v' begin-selection bind -t vi-copy 'y' copy-pipe 'nc localhost 5682' bind p run-shell 'nc localhost 5683; nc localhost 5683 | tmux load-buffer -' \; paste-buffer
Działa również z myszą w wersji 1.8
źródło
Oto rozwiązanie, którego używam w
tmux
wersji 2.8, macOS Mojave 10.14.1 i Terminal.app.Po zwolnieniu przycisku myszy powoduje to usunięcie zaznaczenia podczas kopiowania do schowka systemowego (a także do
tmux
bufora):bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
źródło
Solidne rozwiązanie, które działa z dowolną kombinacją sesji mosh + tmux + vim + zagnieżdżonych
Po spędzeniu wielu dni na rozwiązywaniu tego problemu, zdecydowanie najbardziej niezawodnym rozwiązaniem, jakie odkryłem, jest opublikowane rozwiązanie Suraj N. Kurapati . Rozwiązanie działa lokalnie z (i bez) tmux v3.2 i / lub vim, a także zdalnie z (i bez) tmux i / lub vim , używając zarówno klawiszy trybu kopiowania, jak i prostego wyboru myszy.
W połączeniu z żądaniem ściągnięcia Mike'a Gulicka (obecnie otwartego) , wszystkie te kombinacje działają również z mosh .
Dopóki rozwiązanie Mike'a nie zostanie połączone w mosh, możesz pobierać jego zmiany i budować lokalnie za pomocą:
Ubuntu:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0 \ && sudo apt-add-repository https://cli.github.com/packages \ && sudo apt update \ && sudo apt install -y gh autoconf automake perl protobuf-compiler libprotobuf-dev libncurses-dev zlib1g-dev libutempter-dev libssl-dev pkg-config \ && mkdir -p ~/tmp/mosh \ && git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \ && cd ~/tmp/mosh \ && gh pr checkout 1104 \ && ./autogen.sh \ && ./configure \ && make \ && sudo make install
System operacyjny Mac:
Myślę, że najpierw musisz zainstalować Apple Xcode / Developer Command Line Tools (które, IIRC, można teraz zrobić, po prostu uruchamiając
gcc
i zamykając), a następnie uruchom:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" \ && brew install gh autoconf automake && mkdir -p ~/tmp/mosh \ && git clone https://github.com/mobile-shell/mosh ~/tmp/mosh \ && cd ~/tmp/mosh \ && gh pr checkout 1104 \ && ./autogen.sh \ && ./configure \ && make \ && sudo make install
Dzięki tym aktualizacjom święty Graal w schowku został wreszcie osiągnięty!
Jest to jednak bardzo nowa informacja, stąd mój post jest dość zmienny. W związku z tym:
Prosimy o poprawienie mojego postu, jeśli:
gh pr checkout 1104
zmian Mike'a nie jest już potrzebne, ponieważ zostało scalone w mosh lubźródło