Untuk menyalin teks ke X clipboard di tmux, yang saat ini saya lakukan adalah:
- pergi mode pemilihan dengan prefix[
- mulai seleksi dengan space(menggunakan
mode-keys vi
btw) - pilih teks dan tekan enter
- salin tmux buffer ke X clipboard menggunakan prefixctrl+c
(Saya memiliki pemetaan sebagai bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
Saya mencoba menghilangkan beberapa langkah ini dengan membuat pemetaan untuk mode pemilihan. Saya telah mencoba:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
yang memberi saya dan kesalahan:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(Saya tidak bisa menyalin kesalahan)
bagaimana saya bisa memperbaikinya?
EDIT: Saya menyadari saya dapat memilih dan menyalin ke buffer tmux (3 langkah pertama) menggunakan mouse seperti pilihan biasa (meskipun penyorotan tidak berlangsung lama, ia masih memilih teks) dan kemudian menggunakan bind berikut untuk menyalin ke x clipboard :
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(Saya menggunakan metode ini untuk menyalin teks ini dan itu mudah;)
perhatikan yang -n
menunjukkan "tidak ada awalan" oleh karena itu tidak diperlukan pelolosan. jika Anda tidak bingung dengan highlight yang hilang, ini analog dengan penyalinan biasa (antarmuka pengguna umum).
ini adalah yang terbaik yang saya buat sejauh ini ..
EDIT2: ternyata ctrl+ctumpang tindih dengan hal proses interupsi jadi saya berubah menjadi ctrl+alt+cuntuk saat ini. (tidak begitu suka)
EDIT3 : tmux 1.8 atau lebih menambahkan dukungan untuk menambahkan keybindings dalam mode salin jadi sekarang niat asli pertama saya mungkin menggunakan sesuatu seperti:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
Kedua binding ini memungkinkan untuk menyalin teks ke clipboard ketika saya menggunakan enteratau yuntuk menyelesaikan penyalinan.
Saya masih mempertahankan baris ini jika saya melakukan penyalinan dengan mouse dan memutuskan untuk mendapatkan konten buffer tmux ke clipboard nanti:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
sumber
stty intr=^Z
. Hati-hati dengan perintah itu, mungkin untuk mengatur karakter reguler menjadi karakter interrupt (jika Anda melakukannya, gunakan ctrl-v untuk memasukkannya sampai memperbaiki pengaturan). Dan jangan bingung pada kunci apa yang digunakan (mis. Ctrl-z biasanya adalah kunci penangguhan).^c
kunci interupsi seperti yang saya gunakan lebih sering daripada menyalin. Saya juga memperbarui jawaban untuk mencerminkan solusi saya saat ini untuk masalah ini.bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
live memberi:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
berfungsi dengan baik.Jawaban:
Balasan ini tidak langsung menjawab pertanyaan Anda tentang cara membuat pintasan. Tapi inilah yang saya lakukan.
Anda dapat menangguhkan sementara melewati kunci / acara mouse Anda ke tmux dengan menahan shift. Jadi, Anda dapat menekan dan menahan Shift dan pengguna pintas biasa terminal / X untuk melakukan salinan. Dalam kasus saya menggunakan Terminator, saya tekan shift, sorot dengan mouse apa pun yang saya inginkan, salinCtrl+Shift+C
Dan jika Anda memiliki panel split, Anda dapat memperbesar panel saat ini dengan tombol zoom-toggle Prefix + z, dan melakukan operasi salin. (diuji pada tmux v1.8)
sumber
Ini tidak langsung menjawab pertanyaan Anda, tetapi lihatlah tmux-yank , seperti dijelaskan dalam Menggunakan clipboard sistem dalam mode vi-copy di tmux dan Getting tmux untuk menyalin buffer ke clipboard . Setelah menginstal,
sumber