Tmux 2.4+ z powiązaniami trybu kopiowania vi i xclip :
set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
W przypadku starszych wersji tmux, powiązań trybu kopiowania emacsa (domyślnie) lub platform innych niż X (tj. Bez xclip), zobacz wyjaśnienie poniżej.
Objaśnienie: Najpierw musimy włączyć opcję myszy, aby tmux przechwycił mysz i pozwolił nam powiązać zdarzenia myszy:
set-option -g mouse on
Gnome-terminal nie obsługuje ustawiania schowka przy użyciu sekwencji specjalnych xterm, więc powinniśmy upewnić się, że set-clipboard
opcja jest wyłączona:
set-option -s set-clipboard off
Ta opcja może być obsługiwana i domyślnie włączona w iTerm2 (patrz set-clipboard
instrukcja tmux), co wyjaśniałoby zachowanie się na niej.
Następnie możemy powiązać MouseDragEnd1Pane
„klucz” trybu kopiowania , tzn. Gdy pierwszy przycisk myszy zostanie zwolniony po kliknięciu i przeciągnięciu w okienku, do polecenia tmux, które pobiera bieżący wybór trybu kopiowania (domyślnie ustawiony dla MouseDrag1Pane
) i przesyła potoki do polecenia powłoki. Ta komenda tmux była copy-pipe
wcześniejsza niż tmux 2.4 i od tego czasu zmieniła się na send-keys -X copy-pipe[-and-cancel]
. Jeśli chodzi o polecenie powłoki, po prostu potrzebujemy czegoś, co ustawi zawartość schowka systemowego na cokolwiek, co jest do niego przesyłane; xclip służy do tego w następujących poleceniach. Niektóre równoważne zamienniki "xclip -selection clipboard -i"
poniżej na platformach innych niż X to "wl-copy"
(Wayland), "pbcopy"
(macOS), "clip.exe"
(Windows, WSL) i "cat /dev/clipboard"
(Cygwin, MinGW).
Tmux 2.4+:
# For vi copy mode bindings
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
Tmux od 2.2 do 2.4:
# For vi copy mode bindings
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
Przed tmux 2.2:
Kopiuj po tym, jak pierwotnie dodano obsługę przeciągania myszą w Tmux 1.3 poprzez ustawienie nowej mode-mouse
opcji na on
. Tmux 2.1 zmienił obsługę myszy na znane powiązania klawiszy myszy, ale nie miał DragEnd
powiązań, które zostały wprowadzone w 2.2. Dlatego przed wersją 2.2 uważam, że jedyną metodą ustawienia schowka systemowego na przeciąganie myszą było wbudowane użycie sekwencji ucieczki xterm ( set-clipboard
opcja). Oznacza to, że konieczna jest aktualizacja do wersji co najmniej tmux 2.2, aby uzyskać zachowanie przeciągania i kopiowania dla terminali, które nie obsługują set-clipboard
, takich jak GNOME Terminal.