Tmux 2.4+ dengan binding mode copy dan 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"
Untuk versi tmux yang lebih lama, binding mode copy emacs (default), atau platform non-X (yaitu, tanpa xclip), lihat penjelasan di bawah ini.
Penjelasan: Pertama-tama kita perlu mengaktifkan opsi mouse sehingga tmux akan menangkap mouse dan mari kita ikat acara mouse:
set-option -g mouse on
Gnome-terminal tidak mendukung pengaturan clipboard menggunakan urutan escape xterm jadi kami harus memastikan set-clipboard
opsi tidak aktif:
set-option -s set-clipboard off
Opsi ini mungkin didukung dan diaktifkan secara default di iTerm2 (lihat set-clipboard
di manual tmux), yang akan menjelaskan perilaku di sana.
Kita kemudian dapat mengikat MouseDragEnd1Pane
"tombol" mode salin , yaitu, ketika tombol mouse pertama dilepaskan setelah mengklik dan menyeret dalam sebuah pane, ke perintah tmux yang mengambil pemilihan mode salin saat ini (dibuat oleh pengikatan default untuk MouseDrag1Pane
) dan mengirimkannya ke pipa. ke perintah shell. Perintah tmux ini copy-pipe
sebelum tmux 2.4, dan sejak itu berubah menjadi send-keys -X copy-pipe[-and-cancel]
. Adapun perintah shell, kita hanya perlu sesuatu yang akan mengatur isi clipboard sistem untuk apa pun yang disalurkan ke sana; xclip digunakan untuk melakukan ini dalam perintah berikut. Beberapa penggantian setara untuk di "xclip -selection clipboard -i"
bawah ini pada platform non-X adalah "wl-copy"
(Wayland), "pbcopy"
(macOS), "clip.exe"
(Windows, WSL), dan "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 hingga 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"
Sebelum tmux 2.2:
Salin setelah dukungan seret mouse awalnya ditambahkan di Tmux 1.3 melalui pengaturan mode-mouse
opsi baru untuk on
. Tmux 2.1 mengubah dukungan mouse ke binding kunci mouse yang sudah dikenal, tetapi tidak memiliki DragEnd
binding, yang diperkenalkan pada 2.2. Jadi, sebelum 2.2 saya percaya satu-satunya metode pengaturan clipboard sistem pada drag mouse adalah melalui penggunaan built-in sekuens melarikan diri xterm ( set-clipboard
opsi). Ini berarti bahwa perlu memperbarui setidaknya tmux 2.2 untuk mendapatkan perilaku seret dan salin untuk terminal yang tidak mendukung set-clipboard
, seperti Terminal GNOME.
xclip...
pernyataan dengan sederhanapbcopy
tidak Trik-nya.Unknown key: MouseDragEnd1Pane
DragEnd
kunci.Sebagai perpanjangan dari jawaban yang diterima, orang-orang sering merasa terganggu ketika melepaskan tombol mouse keluar dari mode salin (inilah yang terjadi dengan
copy-pipe-and-cancel
). Lihat: https://github.com/tmux/tmux/issues/140 . Oleh karena itu, di tmux yang lebih baru (saya menggunakan 2.6) dapat kita gunakancopy-pipe
bersamaclear selection
untuk menyalin ke pilihan tetapi jangan keluar dari mode salin:sumber
Memperluas kedua jawaban untuk menyalin dari msys2 ke papan klip Windows (dan menghapus pilihan):
sumber
Ekstensi lain adalah tentang menggunakan
Shift
kunci.Tahan
Shift
sambil memilih teks dengan mouse. Sekarang Anda mendapatkan menu klik kanan standar (tahan terus atau tekanShift
lagi) dan Anda dapat menggunakanCtrl+Shift+C
danCtrl+Shift+V
untuk menyalin dan menempel. Teks yang disalin juga akan tersedia di clipboard sistem .Diuji
Ubuntu 18.04.1
dengantmux 2.6
.Sumber: https://forum.upcase.com/t/tmux-ctrl-shift-c-and-ctrl-shift-v-bindings/1208 .
sumber