Salin ke clipboard dari Tmux di El Capitan

19

Saya cukup senang dengan perubahan Terminal di El Capitan (lihat misalnya pertanyaan ini ).

Namun, saya tidak tahu cara mengaktifkan penyalinan ke clipboard sistem dari dalam Tmux. Sebagai contoh, sekarang saya dapat memilih teks di dalam Tmux dengan benar dengan mouse, bagaimana saya bisa menyalin teks yang dipilih ke clipboard juga, selain buffer Tmux sendiri?

Saya memiliki yang berikut ini di tmux.conf:

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

setw -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Saya mencoba mengubah baris terakhir menjadi

bind-key -t vi-copy 'y' copy-selection \; copy-pipe "pbcopy"

tapi itu tidak berhasil. Akan berterima kasih atas sarannya!

Terima kasih!

siphiuel
sumber
Cmd-C tidak berfungsi?
nohillside
1
@partix - tidak, karena teks yang disalin akan dipilih secara otomatis setelah melepaskan tombol mouse (atau trackpad). Tentu saja ini berfungsi di Terminal, tetapi tidak dari Tmux di dalam terminal.
siphiuel
Perbarui ke Tmux 2.1 memecah gulir mouse di panel Tmux.
siphiuel

Jawaban:

27

Sebenarnya, saya baru mengetahui solusi yang sangat sederhana bagaimana mengaktifkan penyalinan menggunakan Cmd + C lagi.

Dalam aplikasi Terminal default, buka Lihat -> "Izinkan pelaporan mouse" dan hapus centang. Itu dia.

PS: Jelas, fitur-fitur baru yang bagus seperti menyeret layar split di tmux berhenti bekerja setelah menghapus centang pelaporan mouse.

Oplatek
sumber
PS: Saya sebelumnya menggunakan solusi dari @siphiuel, yang berfungsi dengan baik.
Oplatek
1
Terima kasih!!! Ini cara paling sederhana! Hanya bahwa sejarahnya rusak. Saya hanya dapat melihat bagian dari kisah sukses
Sato
Sangat baik. Ini berfungsi
ShikharDua
dan ini juga berfungsi untuk sesi tmux jarak jauh; Saya berpikir bahwa bind-key ... copy-pipesolusinya mungkin hanya bekerja jika ini adalah sesi tmux lokal. Kemudian lagi, mungkin jika Anda melakukan sesi tmux jarak jauh dalam sesi tmux lokal, mungkin berhasil? Lagi pula, hapus centang "Izinkan pelaporan mouse" berfungsi untuk saya, dan bahkan ada jalan pintas ⌘-R (Cmd-R) sehingga Anda dapat dengan cepat mengaktifkannya untuk membuat salinan, lalu kembali lagi.
Aaron Wallentine
24

Jika Anda menggunakan iTerm2 3.x, Anda dapat membuat copy / paste berfungsi dengan mengaktifkan Applications in terminal may access clipboard:

masukkan deskripsi gambar di sini

Sorot teks dengan mouse Anda untuk menyalinnya ke clipboard OS X!

Anda juga dapat menempel dari clipboard OS X ke tmux dengan Cmd+ yang biasa V.

Jerome Dalbert
sumber
2
ini adalah solusi termudah bagi saya.
lennart
Ini luar biasa!
mljrg
17

Jika Anda menahan tombol fungsi ke bawah, Anda dapat memilih dan menyalin ke clipboard dengan apple + c juga.

amohr
sumber
Kami mencari sesuatu yang lebih dari satu jawaban baris. Cobalah perluas jawaban Anda untuk memberikan perincian lebih lanjut.
Allan
2
@ Allan Ini adalah jawaban yang lengkap, meskipun hanya satu baris. Sesederhana itu.
pkuhar
btw, saya menemukan itu hanya berfungsi pada keyboard laptop, tidak terpasang keyboard :(
amohr
8

Sebenarnya, saya salah ketika menyatakan itu copy-pipetidak berhasil. Itu tidak, dan copy-selectionkemudian berlebihan, karena copy-pipekeduanya menyalin teks ke Tmux pasteboard dan pipa ke perintah shell sewenang-wenang. Jadi baris berikut berfungsi:

bind-key -t vi-copy 'y' copy-pipe "pbcopy"

Namun, kita perlu menekan ysebelum melepaskan tombol mouse. Saya menemukan ini dalam dokumentasi untuk plugin tmux-yank :

"Saat membuat pilihan menggunakan tmux mode-mouse on atau mode-mouse copy-mode, Anda tidak bisa mengandalkan perilaku 'lepaskan mouse setelah pemilihan untuk menyalin'. Sebagai gantinya, tekan y sebelum melepaskan mouse."

Jadi itu berfungsi, tetapi dengan agak menjengkelkan perlu menekan yuntuk menyalin teks yang dipilih mouse.

siphiuel
sumber
3
Jika Anda menggunakan Terminal.app: di macOS Sierra ini tidak akan berfungsi karena regresi dalam perilaku Terminal.app. Anda perlu menggunakan retasan "reattach-to-user-namespace" lagi.
m1keil
1
Setuju pada @ m1keil komentar. Selain itu, untuk beberapa alasan saya harus mengkompilasi reattach-to-user-namespace dengan switch tambahan, seperti ini: brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste(saya menggunakan Homebrew)
siphiuel
4

Menggunakan tmux versi 2.2 atau lebih baru tambahkan berikut ini ke file tmux.conf Anda:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Kyle Kloepper
sumber
Bekerja untuk El Capitan 10.11, tmux 2.7
Homer
3

Jawaban dari @Oplatek mulai berlaku

Dalam aplikasi Terminal default, buka Lihat -> "Izinkan pelaporan mouse" dan hapus centang.

Tetapi dengan cara ini, kita tidak akan dapat menggulir layar dengan mouse.

Berikut cara lain tanpa cacat Allow mouse reporting: Tekan Fndan pilih teks dengan mouse.

secfree
sumber
0

Dengan menggunakan tmux 2.2, OS X El Capitan, Terminal Versi 2.6.1 (default yang dikirimkan bersama El Capitan), pengaturan berikut berfungsi dengan sempurna (sejauh ini).

$ cat ~/.tmux.conf
set -g mouse on
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

Untuk menyalin, tekan tombol kiri mouse, tandai teks, dan lepaskan. Teks yang ditandai kemudian di clipboard dan dapat ditempel dengan Cmd+ vseperti biasa.

Kjell
sumber
-2

saya hanya menemukan satu cara

buka pengaturan / profil terminal di info terminal, ubah jenis terminal dari xterm-256 ke ansi buka jendela terminal baru dan nikmati :)

Levan Petrosian
sumber