Tmux 2.4+ với các ràng buộc chế độ sao chép vi và 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"
Đối với các phiên bản tmux cũ hơn, emacs sao chép chế độ ràng buộc (mặc định) hoặc nền tảng không phải X (nghĩa là không có xclip), xem phần giải thích bên dưới.
Giải thích: Đầu tiên chúng ta cần kích hoạt tùy chọn chuột để tmux sẽ bắt chuột và để chúng tôi liên kết các sự kiện chuột:
set-option -g mouse on
Gnome-terminal không hỗ trợ cài đặt bảng tạm bằng cách sử dụng các chuỗi thoát xterm, vì vậy chúng tôi nên đảm bảo set-clipboard
tùy chọn bị tắt:
set-option -s set-clipboard off
Tùy chọn này có thể được hỗ trợ và kích hoạt theo mặc định trên iTerm2 (xem set-clipboard
trong hướng dẫn sử dụng tmux), điều này sẽ giải thích hành vi trên đó.
Sau đó, chúng ta có thể liên kết MouseDragEnd1Pane
"khóa" chế độ sao chép , tức là khi nút chuột đầu tiên được giải phóng sau khi nhấp và kéo trong một ngăn, với lệnh tmux có lựa chọn chế độ sao chép hiện tại (được tạo bởi liên kết mặc định cho MouseDrag1Pane
) và đặt nó để một lệnh shell. Lệnh tmux này có copy-pipe
trước tmux 2.4 và từ đó đã đổi thành send-keys -X copy-pipe[-and-cancel]
. Đối với lệnh shell, chúng ta chỉ cần một cái gì đó sẽ đặt nội dung của bảng tạm hệ thống thành bất cứ thứ gì được dẫn đến nó; xclip được sử dụng để làm điều này trong các lệnh sau. Một số thay thế tương đương cho "xclip -selection clipboard -i"
bên dưới trên các nền tảng không phải là X là "wl-copy"
(Wayland), "pbcopy"
(macOS), "clip.exe"
(Windows, WSL) và "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 đến 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"
Trước tmux 2.2:
Sao chép sau khi hỗ trợ kéo chuột ban đầu được thêm vào Tmux 1.3 thông qua cài đặt mode-mouse
tùy chọn mới thành on
. Tmux 2.1 đã thay đổi hỗ trợ chuột thành các ràng buộc phím chuột quen thuộc, nhưng không có DragEnd
các ràng buộc, được giới thiệu trong 2.2. Do đó, trước 2.2 tôi tin rằng phương pháp duy nhất để thiết lập bảng tạm hệ thống khi kéo chuột là thông qua việc sử dụng các chuỗi thoát xterm tích hợp ( set-clipboard
tùy chọn). Điều này có nghĩa là cần phải cập nhật lên ít nhất tmux 2.2 để có được hành vi kéo và sao chép cho các thiết bị đầu cuối không hỗ trợ set-clipboard
, chẳng hạn như Terminal Gnome.