Mendapatkan tmux untuk menyalin buffer ke clipboard

118

Saya mencoba mencari cara yang layak untuk menyalin apa yang saya miliki di buffer tmux ke clipboard saya. Saya sudah mencoba beberapa hal yang berbeda seperti

bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer

yang membuat saya cukup dekat, yang harus saya lakukan adalah menekan control-d setelah saya melakukan prefix-p.

Saya mencoba memperbaikinya dengan melakukan

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE'

Tapi itu tidak berhasil. Sebenarnya jika saya memasangkan ini ke adil

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE'

tidak melakukan apa-apa jadi saya berasumsi bahwa split-window tidak suka << dalam perintah shell.

Ada ide?

Sunting: Anda dapat melewati select-pane -t 2jika Anda mau, itu tidak terlalu penting. Saya hanya menggunakan tata letak tertentu dan panel 2 adalah yang saya lebih suka untuk membagi ketika saya melakukan sesuatu yang lain sehingga masuk ke binding saya yang melibatkan pemisahan secara default.

Kekuatan Digital
sumber
2
Pastikan untuk melihat jawaban di bawah 2014, yang lebih baru daripada yang lainnya. Ini merekomendasikan plugin tmux yank yang bekerja dengan sangat baik.
dmonopoli
Untuk jawaban yang terkini dengan Tmux 2.4 (dirilis April 2017) dan 2.6 lihat jawaban saya
Jason Axelson

Jawaban:

26

Di sini dokumen perlu baris baru. Misalnya, dalam skrip shell, Anda dapat menulis

cat <<EOF >somefile; echo  done
file contents
EOF

Saya tidak berpikir tmux memungkinkan Anda menempatkan baris baru di sana, dan bahkan jika itu terjadi, ini tidak akan menjadi pendekatan yang baik. Bagaimana jika data itu sendiri berisi HEREsatu per satu (mis. Karena Anda menyalinnya .tmux.conf)?

Saya sarankan untuk menulis konten buffer ke file sementara. Belum dicoba:

bind-key p save-buffer ~/.tmux-buffer \; run-shell "xsel -i -b <~/.tmux-buffer && rm ~/.tmux-buffer"

Ada kondisi lomba jika Anda menggunakan perintah ini dalam dua instance tmux yang terpisah. Saya tidak tahu bagaimana menyelesaikannya.

Gilles
sumber
Terima kasih berfungsi dengan sempurna, kondisi balapan bukan masalah bagi saya, saya hanya menggunakan 1 sesi.
Kekuatan Digital
Untuk menghindari kondisi balapan, saya sarankan menggunakan mktempyang tersedia secara luas
Duka
@Semoga bagus. Dalam hal ini, menggunakan PID dari proses tmux akan bekerja dengan baik dan mungkin akan lebih mudah untuk diatur ( $PPIDdalam sebuah shell yang diluncurkan oleh tmux). Tapi bagaimana Anda mendapatkan nama file variabel (namun itu dibangun) ke dalam argumen save-buffer? Saya kira save-buffer - | …seperti dalam jawaban Grauwolf , yang mana menghapus file sementara sama sekali?
Gilles
Anda benar, salah saya, ini tidak mungkin.
Duka
93

Ini seharusnya bekerja:

# move x clipboard into tmux paste buffer
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i"
Grauwolf
sumber
1
Begitu juga. Itu jauh lebih bagus daripada menggunakan file sementara, terima kasih. Bahkan secara otomatis mengatasi beberapa sesi bersamaan, berkat TMUXvariabel lingkungan.
Gilles
22
Instruksi yang lebih baik C-padalah: bind C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer"- tidak ada masalah mengutip atau masalah batas baris perintah.
docwhat
8
Apakah tmux memiliki pengait untuk menyalin pilihan ke clipboard saat masuk copy-mode?
Ehtesh Choudhury
1
xclip -oopsi tidak bekerja untuk saya jadi saya telah berubah kebind C-c run "tmux save-buffer - | xclip -selection c"\; display-message "Buffer copied to clipboard"
Pawka
6
Setiap kali saya menyalin seperti ini, tmux berhenti merespons pintasan keyboard apa pun. Ada solusi untuk itu?
skrat
41

Solusi yang lebih sederhana untuk Mac OS-X

Ini membangun dari jawaban Alex dan menggunakan hal-hal yang tidak ada pada saat itu.

Jika Anda menggunakan homebrew (dan jika tidak, mengapa tidak?) Maka Anda bisa melakukan ini:

brew install reattach-to-user-namespace

Kemudian di Anda ~/.tmux.conf:

set-option -g default-command "reattach-to-user-namespace -l zsh" # or bash...
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"

Untuk menyalin buffer dari tmux (Anda seharusnya sudah menyalin sesuatu menggunakan tmux) ke papan tulis Mac, gunakan <tmux-key> Control-c. Sekarang akan tersedia untuk Command-vataupbpaste

Untuk menempelkan sesuatu dari papan tulis Mac, gunakan <tmux-key> Control-v.

docwhat
sumber
2
Jawaban ini luar biasa. Saya menggunakan tmux show-bufferyang menyebabkan masalah bungkus garis tmux save-buffer -menyelesaikannya.
event_jr
Apa yang dilakukan -pada akhir tmux save-buffer -?
hekevintran
Memancarkan save-bufferke stdout. Anda dapat mengganti -dengan nama file dan itu akan menyimpannya di sana. Ini mencegah Anda dari menulis (dan harus membersihkan) file.
docwhat
1
Pada OS X 10.10 reattach-to-user-namespace tidak lagi diperlukan. Hampir setiap tutorial dan dokumentasi mengenai tmux dan OS X menyebutkannya, karena menyalin & menempel tidak mudah dilakukan beberapa tahun yang lalu. Saat ini (sebagian besar) bekerja di luar kotak.
Rafael Bugajewski
40

The copy-pipeperintah ditambahkan pada versi 1.8. Ini menyalin pilihan ke buffer tmux dan pipa itu ke perintah. Sekarang tidak perlu untuk mengikat awalan. Ini sebuah contoh:

bind -t vi-copy y copy-pipe "xclip"

# For OS X users:
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

Sekarang ketika Anda memiliki beberapa teks yang dipilih copy-mode, yakan menyalin teks itu ke buffer tmux serta clipboard OS. Namun, itu tidak membantu jika Anda ingin mendapatkan teks dari clipboard ke buffer tmux.

Tyler Holien
sumber
1
Berfungsi dengan sempurna dan merupakan solusi paling sederhana dari grup.
Naseer
2
Tidak bekerja untuk saya di Linux, tetapi yang ini tidak: unix.stackexchange.com/a/131074/13601
Sebastian Blask
1
Pada OS X 10.10, tampaknya reattach-to-user-namespacetidak perlu.
Chris
bekerja pada el capitan
olleh
2
Ini tidak lagi berfungsi untuk Tmux 2.4 yang dirilis pada 20 April 2017. Alih-alih, Anda perlu menggunakan bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip"dan untuk OS X:bind-key -T copy-mode-vi y send-keys -X copy-pipe "reattach-to-user-namespace pbcopy"
Jason Axelson
16

Anda mungkin ingin mencoba plugin tmux-yank . Ini memungkinkan penyalinan langsung ke clipboard sistem (OS X dan Linux) dan beberapa barang lain seperti menarik garis shell saat ini.


sumber
7
Ini adalah solusi yang bagus dan bersih dan harus dipertimbangkan lebih karena itu adalah jawaban yang jauh lebih baru daripada yang lain. Terima kasih telah berbagi!
dmonopoli
9

Setelah mencoba berbagai solusi, berikut ini adalah pengaturan terakhir saya:

# move x clipboard into tmux paste buffer
bind C-p run "xclip -o | tmux load-buffer -
# move tmux copy buffer into x clipboard
bind C-y run "tmux save-buffer - | xclip -i -selection clipboard"

menggunakan save-buffer alih-alih show-buffer memberikan data nyata tanpa data seperti yang ditunjukkan dengan jeda baris saat Anda berada di split.

Saya juga menggunakan ini untuk memulai seleksi / salin dalam mode salin tmux:

bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

Saya kira mungkin saja untuk menggabungkan seleksi-salinan dengan tombol 'y' DAN memindahkannya ke papan klip x.

Ownatik
sumber
Saya mencoba untuk menggabungkan kedua perintah seperti yang Anda sebutkan tanpa hasil. Ada ide tentang cara melakukannya?
Rafael Vega
9

Berikut adalah upaya jawaban yang komprehensif.

Pertama, sedikit sejarah

Ketika pertanyaan ini pertama kali ditanyakan (Juni, 2011) menyalin teks dari Tmux ke clipboard harus merupakan proses dua langkah, pertama-tama salin teks yang dipilih ke buffer Tmux, kemudian salin teks dari buffer Tmux ke clipboard sistem.

Pada 1.8 (Maret, 2013) copy-pipeperintah telah ditambahkan yang memungkinkan Anda untuk menyalin teks yang dipilih langsung ke clipboard sistem (atau tujuan lain).

Kemudian pada 2.4 (April, 2017) tabel kunci diubah secara signifikan sehingga banyak jawaban pada halaman ini menjadi usang.

Menjawab pertanyaan awal

Linux :

bind-key C-y run-shell "tmux save-buffer - | xclip -i -r > /dev/null" \; display-message "Copied tmux buffer to selection"
bind-key C-Y run-shell "tmux save-buffer - | xclip -i -r -selection clipboard > /dev/null" \; display-message "Copied tmux buffer to clipboard"
bind-key C-p run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer"

Mac :

Jika Anda menggunakan homebrew maka Anda harus menginstal reattach-to-user-namespacedengan menjalankan perintah berikut di terminal:

brew install reattach-to-user-namespace

Kemudian di ~ / .tmux.conf Anda:

bind-key C-y run-shell "tmux save-buffer - | reattach-to-user-namespace pbcopy" \; display-message "Copied tmux buffer to clipboard"
bind-key C-p run-shell "reattach-to-user-namespace pbpaste | tmux load-buffer - ; tmux paste-buffer"

The Shorter Method (salin dan tempel pilihan langsung dari dan ke clipboard untuk tmux> 2.4)

Catatan: ada dua versi untuk Linux karena Linux memiliki clipboard primer dan sekunder (juga dikenal sebagai seleksi).

Linux :

bind-key -T copy-mode-vi y send-keys -X copy-pipe "xclip -r" \; display-message "Copied to selection"
bind-key -T copy-mode-vi Y send-keys -X copy-pipe "xclip -r -selection clipboard" \; display-message "Copied to clipboard"
bind-key C-p run-shell "xclip -o | tmux load-buffer - && tmux paste-buffer"

Mac :

bind-key -T copy-mode-vi y send-keys -X copy-pipe "reattach-to-user-namespace pbcopy" \; display-message "Copied to clipboard"

Kustomisasi perintah ini

  • Jika Anda tidak ingin perintah memberi tahu Anda apa yang dilakukannya di baris status maka hapus saja display-message(dan juga \;yang datang sebelumnya).

  • Jika Anda menggunakan mode salin gaya Emacs alih-alih vi maka ganti instance copy-mode-videngan hanyacopy-mode

  • Jika Anda menjalankan Linux dan Anda ingin menggunakan xselalih-alih xclipganti xclip -rdengan xsel -i -pdan xclip -odenganxsel -o -p

  • The -rdalam xclip -radalah opsional, ia bisa menghilangkan baris terakhir. Ini berguna untuk menyalin perintah, maka ketika Anda menempelkannya mereka tidak akan segera dieksekusi.

  • Jika Anda melakukan tunneling melalui SSH maka Anda harus berkonsultasi dengan https://unix.stackexchange.com/a/354581/14252

Referensi:

Jason Axelson
sumber
Apakah perintah ini bind-key C-p run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer", masih valid? untuktmux>2.4
alpha_989
7

Saya tidak suka memiliki penekanan tombol ekstra, jadi saya ingin sesuatu yang lebih ambisius. Masuk ke mode salin dengan [, sorot teks kanan, lalu tekan] untuk menyalin teks ke clipboard.

Juga, tmux suka memasukkan baris baru dalam ekspresi yang membungkus (dan anehnya baris baru itu berada di tempat yang salah ! Mereka tidak berada di tempat ekspresi dibungkus pada layar). Jadi saya ingin C-] menyalin ekspresi menghapus baris baru.

Pada tmux 1.6 saya mencoba ini:

bind [ copy-mode
bind -t vi-copy ] run "tmux send-keys Enter; tmux show-buffer | xclip -i -selection clipboard;"
bind -t vi-copy C-] run "tmux send-keys Enter; tmux show-buffer | perl -pe 's/\n//' | xclip -i -selection clipboard;"

tetapi itu tidak berhasil karena tmux tampaknya tidak senang untuk mengikat hal-hal kompleks ke tabel vi-copy. Jadi saya akhirnya melakukan ini sebagai gantinya:

bind [ copy-mode \;                                                        \
    bind -n ] run                                                          \
    "tmux send-keys Enter;                                                 \
     tmux show-buffer | xclip -i -selection clipboard;                     \
     tmux unbind -n C-];                                                   \
     tmux unbind -n ]" \;                                                  \
    bind -n C-] run                                                        \
    "tmux send-keys Enter;                                                 \
     tmux show-buffer | perl -pe 's/\n//' | xclip -i -selection clipboard; \
     tmux unbind -n C-];                                                   \
     tmux unbind -n ]"

Ini mengarah ke hal-hal aneh (] atau C-] akan bertindak lucu saat lain kali Anda menggunakannya, tetapi hanya sekali) jika Anda keluar dari mode salin dengan cara lain selain] atau C-]. Ini bisa diperbaiki dengan lebih banyak binding yang saya bayangkan, tetapi ini yang paling saya inginkan.

Leif
sumber
stackoverflow.com/a/10954274/69663 mencatat bahwa ada laporan bug terkait pada batasan bind-key di sourceforge.net/tracker/…
unhammer
4

Ada solusi di Arch Wiki menggunakan xclip:

# move tmux copy buffer into x clipboard
bind-key C-y save-buffer /tmp/tmux-buffer \; run-shell "cat /tmp/tmux-buffer | xclip"

https://wiki.archlinux.org/index.php/Tmux

jasonwryan
sumber
2
Apakah tmux membuat save-bufferfile dengan aman di direktori bersama? Kalau tidak memasukkannya ke dalam /tmplubang keamanan. Ada penggunaan yang tidak berguna cat, dan penghapusan file sementara hilang. Maka itu soal xselvs xclip, yang setara di sini, dan Anda punya solusi (ditulis dengan tidak sabar).
Gilles
1
Terima kasih Gilles. Saya akan memperbarui wiki untuk mencerminkan poin Anda.
jasonwryan
4

Solusi untuk Mac OS X. Ikuti 2 langkah ini:

  1. Gunakan solusi Chris Johnsen: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard

  2. Tambahkan kode ini ke konfigurasi tmux Anda (~ / .tmux.conf)

# paste clipboard into tmux buffer
bind v run-shell "reattach-to-user-namespace -l zsh -c 'tmux set-buffer \\"$(pbpaste)\\"; tmux paste-buffer'"
# put tmux buffer into x clipboard
bind y run-shell "reattach-to-user-namespace -l zsh -c 'tmux show-buffer | pbcopy'"

Alex Gaudio
sumber
4

Varian yang sedikit dimodifikasi dari jawaban yang diterima, yang saya buat.

Saya juga lebih suka menggunakan clipboard sistem (Ctrl-C, Ctrl-V) selain primaryclipboard default xclip (yang Anda dapatkan dengan pemilihan mouse dan klik tengah mouse). Untuk memilih clipboard sistem Anda harus menyampaikan -selection clipboardargumen xclip.

Juga saat menyalin buffer ke clipboard, saya suka kemampuan untuk memilih buffer yang ingin saya salin. Hal ini dilakukan menggunakan choose-bufferdan kemudian meneruskan buffer argumen untuk save-buffermenggunakan -b %%.

# Copy into clipboard
bind C-c choose-buffer "run \"tmux save-buffer -b %% - | xclip -i -selection clipboard\""
# Paste from clipboard
bind C-v run "xclip -o -selection clipboard | tmux load-buffer - ; tmux paste-buffer"
# Copy into primary
bind C-y choose-buffer "run \"tmux save-buffer -b %% - | xclip -i \""
# Paste from primary
bind C-p run "xclip -o | tmux load-buffer - ; tmux paste-buffer"

UPDATE: Entah bagaimana dengan tmux 1.8 dan dua instalasi openSUSE 12.2 saya, saya melihat hang ketika tmux run-shelldipanggil dengan xclipmembaca dari stdin melalui pipa. Saya malah memutuskan untuk xselmencoba dan itu tampaknya berhasil. Ini adalah binding kunci setara yang digunakan xsel. Saya juga digunakan &&untuk rantai perintah di tempel untuk ketahanan lebih.

# Copy into clipboard
bind C-c choose-buffer "run \"tmux save-buffer -b '%%' - | xsel -i -b\""
# Paste from clipboard
bind C-v run "xsel -o -b | tmux load-buffer - && tmux paste-buffer"
# Copy into primary
bind C-y choose-buffer "run \"tmux save-buffer -b '%%' - | xsel -i\""
# Paste from primary
bind C-p run "xsel -o | tmux load-buffer - && tmux paste-buffer"
Tuxdude
sumber
4

Ini adalah jawaban saya yang agak panjang yang harus memperbaiki dua masalah utama dengan menggunakan xclip untuk menyalin buffer dari sesi tmux jarak jauh (ssh):

1. xclip tidak responsif

Bagi saya @ jawaban Grauwolf dengan xcliptidak bekerja (menjadikan tmux pane benar-benar tidak responsif). Saya menemukan alasannya di halaman Tmux di Arch wiki :

xclip juga dapat digunakan untuk tujuan itu, tidak seperti xsel, ia berfungsi lebih baik untuk mencetak bitstream mentah yang tidak sesuai dengan lokal saat ini. Namun demikian, lebih baik menggunakan xsel daripada xclip, karena xclip tidak menutup STDOUT setelah membaca dari buffer tmux. Karena itu, tmux tidak tahu bahwa tugas penyalinan telah selesai, dan terus menunggu penghentian xclip, sehingga membuat tmux tidak responsif. Solusinya adalah dengan mengarahkan STDOUT dari xclip ke / dev / null

Jadi pengikatannya harus:

bind-key C-y run "tmux save-buffer - | xclip -i -sel clip > /dev/null"

Sekarang, ini akan berfungsi jika sesi tmux Anda bersifat lokal.

2. xclip tidak dapat terhubung ke X

Jika Anda menggunakan tmux over ssh -X , ada kemungkinan besar ini tidak akan berfungsi secara langsung.

Itu karena variabel shell $DISPLAYperlu diatur dengan benar.

Solusi lengkap

Jadi bagi saya, solusi kerja yang lengkap adalah dengan meletakkan baris berikut di saya ~/.tmux.conf:

set-option -g update-environment "DISPLAY"
bind-key C-y run "export DISPLAY=`tmux show-env | sed -n 's/^DISPLAY=//p'`; tmux save-buffer - | xclip -i -selection clipboard >/dev/null"
# Or more concise:
bind-key C-y run "tmux save-buffer - | xclip -i -selection clipboard -d `tmux show-env | sed -n 's/^DISPLAY=//p'` >/dev/null

Untuk menempelkan dari primer:

bind-key C-p run "xclip -d `tmux show-env | sed -n s/^DISPLAY=//p` -o | tmux load-buffer - && tmux paste-buffer"

Saya tidak sepenuhnya mengerti mengapa $DISPLAYtidak ditetapkan dengan benar saat sumber .tmux.conf, jadi ini sebabnya saya harus mengekstraknya dengan tmux show-envdan sed.

Jika Anda memiliki tmux> = 1.8, Anda dapat menyesuaikan perintah ini dengan copy-pipe:

bind-key -t vi-copy y copy-pipe 'xclip -in -selection clipboard -d `tmux show-env | sed -n s/^DISPLAY=//p` >/dev/null'
PlasmaBinturong
sumber
/home/linux/.tmux.conf:11: invalid or unknown command: bind-key C-y run "tmux save-buffer - | xclip -i -selection clipboard -d `tmux show-env | sed -n 's[0/0] PLAY=//p'` >/dev/null
pengguna
@menggunakan sedperintah yang Anda tunjukkan tidak sama dengan yang saya tulis ... Apakah ini yang Anda tulis .tmux.conf?
PlasmaBinturong
Saya baru saja menyalin dan menempelkan kode Anda.
pengguna
@ pengguna, aneh. Mungkin ada banyak sumber kesalahan. Periksa dulu bahwa kutipan Anda baik-baik saja. Lalu, apakah Anda terbiasa sed? Perintah harus: sed -n s/^DISPLAY=//p. Atau, Anda bisa menggunakan cut: tmux show-env DISPLAY | cut -d'=' -f2. Mungkin juga patut memeriksa versi tmux Anda.
PlasmaBinturong
3

Saya mencoba mencari cara yang layak untuk menyalin apa yang saya miliki di buffer tmux ke clipboard saya. Saya sudah mencoba beberapa hal yang berbeda seperti

Untuk binding gaya emacs ada beberapa opsi berbeda. (Vi-style harus serupa?) Penjilidan khas untuk melakukan "copy-selection" di emacs adalah Mw, jadi akan sangat nyaman untuk memiliki ikatan yang sama di tmux.

1 - Apakah ideal, tetapi tidak berfungsi (karena batasan tmux?)

unbind-key -t emacs-copy M-w
bind-key -t emacs-copy M-w copy-selection\; \
  run-shell "tmux save-buffer - | xsel --input --clipboard"

2 - Kompromi yang berfungsi baik untuk saya : Terima menggunakan keybinding berbeda untuk emacs-copy di tmux. Gunakan misalnya CMw. (Ini mengikat yang akan didefinisikan "secara global" - tidak hanya dalam mode salin - tetapi hanya berguna dalam mode salin)

bind-key -n C-M-w send-keys M-w\; \
 run-shell "tmux save-buffer - | xsel --input --clipboard" 
Hugo Heden
sumber
3

Banyak dari jawaban ini tidak berfungsi untuk Ubuntu 14.04 saya di zsh apa adanya. Tidak yakin apakah shell saya ada hubungannya dengan itu, tetapi ini adalah versi kerja saya menggunakan strategi ini untuk menyalin, dan strategi ini untuk menempel.

    bind-key -t vi-copy 'v' begin-selection
    bind-key -t vi-copy 'y' copy-pipe "xclip -sel clip -i"
    bind-key ] run-shell "xclip -sel clip -o | tmux load-buffer - ; tmux paste-buffer" 

Beberapa catatan:

  • untuk menyalin-pipa, saya perlu menentukan clipboard saya dengan -sel clip -i. Baris itu menggabungkan yank ke tmux buffer dan mengirimkannya ke xclip.
  • untuk benar-benar menempelkannya, saya harus menentukan lagi clipboard dengan -sel clip -o

Ini berfungsi dengan baik sekarang untuk pengaturan vim / zsh / tmux saya.

brianclements
sumber
Terima kasih! -sel clip -imemecahkan masalah. Meskipun, saya tidak mengerti mengapa Anda perlu menentukan clipboard lagi untuk menempelkannya (standar ]berfungsi untuk saya)
melekes
1

Dan versi perbaikan jawaban @Leif bisa berupa:

tmux bind-key '[' run "tmux copy-mode;
tmux bind-key -n ']' run \"tmux send-keys Enter; tmux save-buffer - | xclip -i -selection clipboard;
tmux unbind-key -n ']'\";
tmux bind-key -n q run \"tmux unbind -n ']'; tmux send-keys q\";
tmux bind-key -n C-c run \"tmux unbind -n ']'; tmux send-keys C-c\""

Dengan cara ini tidak ada konsekuensi jika Anda keluar dari mode salin dengan cara lain selain], kode di atas dibungkus dengan tundle / tmux-yank plugin tmux untuk menyalin teks tmux ke clipboard sistem, ia menargetkan tmux> = 1,6 pada OS X dan Linux.

Javier López
sumber
1

Pada OS-X dengan tmux versi 2.2 atau lebih baru yang berikut ini akan berfungsi:

bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "pbcopy"
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"
Kyle Kloepper
sumber
1

Saya menggunakan copyqmanajer clipboard multiline. (Ini bekerja dengan Windows, OSX, Linux.)

  • Tambahkan baris berikut di ~/.tmux.conf:

    set-window-option -g mode-keys vi
    bind C-y run 'out=`tmux save-buffer - ` && copyq add "$out"'
    
  • cygwinmenuntut copyq.exelokasi di ~/.bashrc:

    export PATH="$PATH:/cygdrive/c/Program Files (x86)/CopyQ"
    
Oleg Svechkarenko
sumber