Berbagi clipboard Mac OS X dengan server X internal

21

Saya ingin dapat menyalin dan menempel antara aplikasi MacOS X asli (Kakao?) Dan yang berjalan di bawah server X internal Mac.

Saat ini saya dapat menyalin dan menempel secara mandiri. Jika saya memilih teks di jendela xterm saya dapat menempelkannya kembali di jendela berbasis X lainnya. Demikian pula, menyalin informasi di luar X dapat disisipkan ke dalam aplikasi yang juga di luar X.

Sebagai contoh, jika saya (dengan urutan ini persis):

  • Salin (pilih menggunakan mouse) "Salin menggunakan pilihan X" di jendela xterm
  • Salin (Edit | Salin) "Teks di Firefox" di Firefox
  • Rekatkan (Geser Sisipkan xmodmap) ke nano, saya dapat "Salin menggunakan pilihan X"
  • Tempel (Sunting | Tempel) di sini saya dapatkan - & gt; Teks di Firefox
  • Tempel di MacVIM (Edit | Tempel) Saya mendapatkan "Teks di Firefox"
  • Rekatkan ke / usr / bin / vim (non grafis) Saya mendapatkan "Salin menggunakan pilihan X"

Bagaimana cara saya mengaktifkan "berbagi clipboard" antara X dan Cocoa?

Xmodmap yang saya gunakan untuk menempelkan di X adalah:

xmodmap -e "keycode 84 = Insert"

di mana 84 adalah tombol Enter keypad numerik. Jadi Shift Enter memberi saya tempel.

kwutchak
sumber
Apakah ini konsisten di seluruh aplikasi X? Apakah Anda mencobanya di dataran xterm atau serupa, tidak vim atau sesuatu dengan buffernya sendiri? Versi OS X mana yang Anda jalankan? Clipboard saya dibagikan di seluruh Kakao dan X11 seperti yang diharapkan pada 10.5.7.
jtb
Hai, terima kasih atas bantuan Anda. Saya menggunakan vim dan akrab dengan masalah seputar penggunaan buffer internal. Saya biasanya curang dan beralih ke mode edit kemudian menempelkan dari menu edit gvim (atau MacVim). Saya telah menambahkan beberapa informasi tambahan ke posting saya untuk memperjelas bagian lain dari pertanyaan Anda.
kwutchak
Ah, terima kasih atas info tambahannya. Saya melihat sebagian besar apa yang Anda gambarkan meskipun tempel pada langkah 3 berfungsi (menggunakan klik tengah, saya tidak memiliki Sisipan yang dipetakan). Command-C tampaknya akan menyalin ke clipboard asli jika saya memiliki teks yang dipilih di X11, tapi saya mengerti maksud Anda bahwa menggunakan operasi copy / paste X asli itu tidak disinkronkan dengan benar.
jtb
Untuk versi OSX terbaru (saya menggunakan 10.12), berikut ini berfungsi: stackoverflow.com/a/9525347/1353267
Samveen

Jawaban:

14

Anda dapat mengaktifkan sinkronisasi clipboard dengan mengedit ~/Library/Preferences/org.x.X11.plist dan menambahkan lima kunci boolean berikut 1 (dan memeriksanya).

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

Mulai ulang X11 dan harus disinkronkan dengan benar.

Edit: Anda dapat menambahkan kunci dengan Editor Daftar Properti atau dengan perintah Terminal berikut:

defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_primary -boolean true
defaults write org.x.X11 sync_primary_on_select -boolean true

Solusi alternatif adalah menginstal versi terbaru XQuartz yang memaparkan opsi-opsi ini melalui Preferensi X11 & gt; & gt; Panel papan tulis.

jtb
sumber
Baris ini mengetik xterm saya dan menyalin seluruh ...;) Baris ini berhasil ditempelkan kembali ke xterm saya ...;) Kasus lain di mana istri saya tidak akan mengerti betapa memuaskannya perbaikan ini !! Terima kasih banyak.
kwutchak
Terima kasih untuk bertanya. Mac memiliki kebiasaan memukul Cmd + C sampai-sampai saya tidak menyadari apa yang hilang. Tapi saya cukup senang memiliki ini di konfigurasi saya sekarang.
jtb
Saya telah menginstal XQuarts dan mengubah opsi untuk itu. Ketika saya ssh ke sistem jarak jauh dengan XForwarding diaktifkan (di kedua sistem) dan menambahkan hal-hal ke clipboard menggunakan xclip (misalnya: ls | xclip) clipboard di sistem lokal saya (mac os x) tidak berubah. Apa yang saya lewatkan?
cwd
4
Saya pikir file yang benar untuk menulis sekarang adalah org.macosforge.xquartz.X11
Keith Smiley
2

Anda juga dapat mengkompilasi ulang vim-7.3 dan menambahkan yang berikut ke .vimrc Anda:

set clipboard=unnamed

Maka Anda akan dapat melakukan 'yy' dalam vim dan menempelkan dalam Kakao dengan Cmd + V. Dan sebaliknya: salin dengan Cmd + V di Cocoa dan rekatkan di vim dengan 'p'

user47498
sumber
perhatikan bahwa vim Anda harus dikompilasi dengan clipboard opsi aktif agar ini berfungsi. Anda dapat melihat apakah itu dengan mengeksekusi vim --version | grep clipboard. Jika dikatakan +clipboard, maka kamu baik-baik saja. Jika dikatakan -clipboard, ini tidak akan berhasil.
egarcia