Tmux 2.4+ з прив’язками режиму копіювання та 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"
Для старих версій tmux, прив’язки режиму копіювання emacs (за замовчуванням) або не-X платформ (тобто, без xclip), див. Пояснення нижче.
Пояснення: Спочатку нам потрібно включити параметр миші, щоб tmux захопив мишу і дозволив нам зв’язувати події миші:
set-option -g mouse on
Gnome-термінал не підтримує налаштування буфера обміну за допомогою послідовностей виходу xterm, тому ми повинні переконатися, що set-clipboardпараметр вимкнено:
set-option -s set-clipboard off
Ця опція може бути підтримана та включена за замовчуванням на iTerm2 (див set-clipboard. Посібник із tmux), що пояснюватиме поведінку там.
Потім ми можемо прив’язати режим MouseDragEnd1Pane" копіювання" режиму копіювання , тобто коли перша кнопка миші відпущена після натискання та перетягування на панель, до команди tmux, яка приймає поточний вибір режиму копіювання (зроблений за замовчуванням для прив'язки MouseDrag1Pane) та передає його до команди оболонки. Ця команда tmux була copy-pipeдо tmux 2.4, і з тих пір змінилася на send-keys -X copy-pipe[-and-cancel]. Що стосується команди оболонки, нам просто потрібна річ, яка встановлюватиме вміст системного буфера обміну на все, що йому належить; xclip використовується для цього в наступних командах. Деякі еквівалентні заміни "xclip -selection clipboard -i"нижче для не-X платформ: "wl-copy"(Wayland), "pbcopy"(macOS), "clip.exe"(Windows, WSL) та "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 2.2 до 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"
До tmux 2.2:
Підтримка копіювання після перетягування миші спочатку була додана в Tmux 1.3 шляхом встановлення нової mode-mouseопції on. Tmux 2.1 змінив підтримку миші на звичні прив'язки клавіш миші, але не мав DragEndприв’язок, які були введені в 2.2. Таким чином, до 2.2 я вважаю, що єдиним методом встановлення системного буфера обміну мишкою було використання вбудованого використання послідовностей xterm escape ( set-clipboardопція). Це означає, що необхідно оновити принаймні tmux 2.2, щоб отримати поведінку перетягування та копіювання для терміналів, які не підтримують set-clipboard, наприклад, термінал GNOME.