Tidak dapat menggunakan pbcopy saat dalam sesi tmux

63

Menjalankan tmux 1.4 diinstal dari port pada snow-leopard saya tidak dapat menggunakan perintah built in OSX pbcopy.

Di luar tmux:

> echo "abc" | pbcopy
> echo $(pbpaste) # or using ^v
abc

Tetapi di dalam tmux:

> echo "123" | pbcopy
> echo $(pbpaste)
abc

Saya telah menjelajahi halaman manual tetapi tidak dapat menemukan opsi yang mungkin berhubungan dengan perilaku ini. Saya juga tidak mengerti mengapa tmuxharus mengacaukan pengalihan shell.

Adakah yang punya petunjuk?

lagsalot
sumber
1
Perhatikan bahwa ini berfungsi menggunakan xclipdi Linux. By the way, echo pbpasteharus menghasilkan "pbpaste".
Dennis Williamson

Jawaban:

75

Menggunakan homebrew

brew install reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste

atau Macports

sudo port install tmux-pasteboard

Tambahkan berikut ini ke atas ~ / .tmux.conf

set-option -g default-command "reattach-to-user-namespace -l zsh"

Anda mungkin ingin menukar zshshell yang Anda gunakan, untuk portabilitas yang mungkin harus Anda gunakan $SHELL.

Diambil dari => robots.thoughtbot.com

William Bettridge-Radford
sumber
6
gunakan bashjika Anda menggunakan bash alih-alihzsh
tiga
bash saya tidak diinisialisasi dengan benar (.bashrc, .bash_profile tidak bersumber). Bagaimana ini harus dilakukan untuk melakukan itu?
Brad Parks
1
Harus mengaktifkan opsi sekarang brew install reattach-to-user-namespace --wrap-pbcopy-and-pbpaste
Ian Yang
4
Opsi yang lebih kuat untuk tmux.conf adalahset-option -g default-command "reattach-to-user-namespace -l $SHELL"
khoomeister
5
opsi --wrap-pbcopy-and-pbpastesudah tidak digunakan lagi --with-wrap-pbcopy-and-pbpaste!
TaeL
11

Ketika tmuxmelepaskan dari konsol (untuk mendukung attach / detach), ia melakukannya dengan cara yang tidak memungkinkannya untuk berkomunikasi dengan GUI lagi.

Tambalan Apple ke GNU screenmenggunakan panggilan sistem pribadi untuk melepaskan dengan cara yang berbeda. Ada tambalan di pelacak bug Macports yang membuat pbcopy/ pbpasteberfungsi kembali. Saya juga mengirimkannya ke repo Homebrew, di mana diterima secara singkat, lalu dikembalikan.

Ini karena ketika tambalan ini diterapkan, ini menyebabkan tmux lumpuh saat melampirkan kembali ke sebuah sesi.

Lihat permintaan tarik di github untuk proyek Homebrew untuk info lebih lanjut.

David Goodlad
sumber
Ini masuk akal ... kecuali bahwa jika saya menjalankan, katakanlah, open .dalam sesi tmux, itu membuka jendela Finder dengan baik, jadi "tidak mengizinkannya untuk berkomunikasi dengan GUI" sepertinya tidak cukup akurat?
jamesdlin
5

Saya menemukan proyek github yang membungkus tmux sehingga pbpaste dan pbcopy bekerja dan tidak memiliki masalah yang dijelaskan yang menyebabkan Homebrew untuk menghapus tambalan. Ini cukup mudah untuk diinstal, hanya sedikit kompilasi dan satu baris di .tmux.conf Anda

Homebrew memiliki tambalan, tetapi seperti yang disebutkan lainnya, itu didukung karena menyebabkan masalah dengan pemasangan kembali.

Ada masalah yang diajukan terhadap tmux , tetapi ditutup karena pembuat tmux tidak memiliki Mac untuk diuji. README pada proyek pasteboard github tmux-MacOSX memiliki detail besar tentang mengapa menambal tmux sulit dalam kasus ini, dan banyak info lainnya seputar situasi tersebut. Ini berfungsi pada OSX 10.6 untuk saya dan membaca kode sepertinya akan bekerja untuk 10.5 juga.

mmrobin
sumber
1

Ada tiket terbuka di sini: http://sourceforge.net/tracker/index.php?func=detail&aid=2960136&group_id=200378&atid=973265

Tanggal: 2010-02-28 11:20:57 UTC Pengirim: nicm

Tidak ada alasan Anda tidak bisa hanya menampilkan showb tmux saja, tentu saja.

Tanggal: 2010-02-28 11:20:05 UTC Pengirim: nicm

Tidak, kecuali seseorang mengirimi saya beberapa kode untuk melakukannya atau perangkat keras dengan OS X di atasnya.

Saya mencoba piping showb ke pbcopy dan tidak berhasil.

~: echo "12345"
12345
[use copy-mode to copy "12345"]
~: tmux showb
12345
~: tmux showb | pbcopy
~: pbpaste

teras
sumber
1

Saya menggunakan tmux-MacOSX-pasteboard pada Snow Leopard dan Lion dan itu menambal fungsionalitas pbcopy / pbpaste untuk Anda di tmux. Mudah dipasang juga.

wyattdanger
sumber
3
tmux-MacOSX-pasteboard sekarang juga ada di macports dengan nama tmux-pasteboard
anddam