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!


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.


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.


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.


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.


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"

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.


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.


-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 :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.