การแชร์คลิปบอร์ด Mac OS X กับเซิร์ฟเวอร์ X ภายใน


21

ฉันต้องการคัดลอกและวางระหว่างแอป Native (Cocoa?) MacOS X และที่ทำงานภายใต้เซิร์ฟเวอร์ X ภายในของ Mac

ขณะนี้ฉันสามารถคัดลอกและวางได้อย่างอิสระ ถ้าฉันเลือกข้อความในหน้าต่าง xterm ฉันสามารถวางกลับในหน้าต่าง X ที่ใช้อื่นได้ ในทำนองเดียวกันการคัดลอกข้อมูลภายนอก X สามารถวางลงในแอปพลิเคชันซึ่งอยู่นอก X

ตัวอย่างเช่นถ้าฉัน (ตามลำดับนี้อย่างแน่นอน):

  • คัดลอก (เลือกโดยใช้เมาส์) "คัดลอกโดยใช้การเลือก X" ในหน้าต่าง xterm
  • คัดลอก (แก้ไข | คัดลอก) "ข้อความใน Firefox" ใน Firefox
  • วาง (Shift แทรก xmodmap) ลงใน nano ฉันได้รับ "คัดลอกโดยใช้การเลือก X"
  • วาง (แก้ไข | วาง) ที่นี่ฉันจะได้รับ -> ข้อความใน Firefox
  • วางใน MacVIM (แก้ไข | วาง) ฉันได้รับ "Text in Firefox"
  • วางลงใน / usr / bin / vim (ไม่ใช่กราฟิก) ฉันได้รับ "คัดลอกโดยใช้การเลือก X"

ฉันจะเปิดใช้งาน "การแชร์คลิปบอร์ด" ระหว่าง X และ Cocoa ได้อย่างไร

xmodmap ที่ฉันใช้เพื่อวางใน X คือ:

xmodmap -e "keycode 84 = Insert"

โดยที่ 84 คือปุ่ม Enter ของแป้นตัวเลข ดังนั้น Shift Enter ให้ฉันวาง


สิ่งนี้สอดคล้องกันในแอปพลิเคชัน X หรือไม่ คุณลองแบบธรรมดาxtermหรือคล้ายกันไม่ใช่vimหรืออะไรกับบัฟเฟอร์ของมันเอง คุณใช้ OS X เวอร์ชันใดอยู่ คลิปบอร์ดของฉันมีการแชร์ทั่ว Cocoa และ X11 ตามที่คาดไว้ใน 10.5.7
jtb

สวัสดี jtb ขอบคุณสำหรับความช่วยเหลือของคุณ ฉันใช้เสียงเรียกเข้าและคุ้นเคยกับปัญหาในการใช้งานเป็นบัฟเฟอร์ภายใน ปกติฉันจะโกงและเปลี่ยนเป็นโหมดแก้ไขจากนั้นวางจากเมนูแก้ไข gvim (หรือของ MacVim) ฉันได้เพิ่มข้อมูลพิเศษลงในโพสต์ของฉันเพื่อชี้แจงส่วนอื่น ๆ ของคำถามของคุณ
kwutchak

ขอบคุณสำหรับข้อมูลเพิ่มเติม ฉันเห็นสิ่งที่คุณอธิบายเป็นส่วนใหญ่แม้ว่าการวางในขั้นตอนที่ 3 ใช้งานได้ (โดยใช้การคลิกกลาง แต่ฉันไม่ได้แทรกการแมปไว้) Command-C ดูเหมือนจะคัดลอกไปยังคลิปบอร์ดดั้งเดิมถ้าฉันมีข้อความที่เลือกใน X11 แต่ฉันเห็นสิ่งที่คุณหมายถึงว่าการใช้การคัดลอก / วาง X ดั้งเดิมนั้นไม่ได้ซิงโครไนซ์อย่างถูกต้อง
jtb

สำหรับ OSX รุ่นล่าสุด (ฉันใช้ 10.12) ผลงานต่อไปนี้: stackoverflow.com/a/9525347/1353267
Samveen

คำตอบ:


14

คุณสามารถเปิดใช้งานการซิงค์คลิปบอร์ดได้โดยการแก้ไข~/Library/Preferences/org.x.X11.plistและเพิ่มคีย์บูลีนห้าปุ่มต่อไปนี้1 (และตรวจสอบพวกเขา)

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

รีสตาร์ท X11 และควรซิงโครไนซ์อย่างถูกต้อง

แก้ไข:คุณสามารถเพิ่มคีย์ได้ด้วยตัวแก้ไขรายการคุณสมบัติหรือด้วยคำสั่งเทอร์มินัลต่อไปนี้:

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

อีกทางเลือกหนึ่งคือการติดตั้งXQuartz เวอร์ชั่นล่าสุดที่เปิดเผยตัวเลือกเหล่านี้ผ่านทางการตั้งค่า X11 >> แผงควบคุมการวาง


บรรทัดนี้พิมพ์บน xterm ของฉันและคัดลอกข้าม ... ;) บรรทัดนี้วางกลับเข้าไปใน xterm ของฉันได้สำเร็จ;;) อีกกรณีที่ภรรยาของฉันไม่เข้าใจว่าการแก้ไขนี้เป็นที่น่าพอใจมากเพียงใด !! ขอบคุณมาก ๆ.
kwutchak

ขอบคุณที่ถาม. Mac มีฉันเป็นนิสัยในการกดปุ่ม Cmd + C ในระดับที่ฉันไม่ได้ตระหนักถึงสิ่งที่ฉันหายไป แต่ฉันดีใจที่มีสิ่งนี้ในการกำหนดค่าของฉันตอนนี้
jtb

ฉันติดตั้ง XQuarts แล้วและเปลี่ยนตัวเลือกของมัน เมื่อฉัน ssh ไปยังระบบรีโมตที่เปิดใช้งาน XForwarding (ทั้งสองระบบ) และเพิ่มสิ่งต่างๆลงในคลิปบอร์ดโดยใช้ xclip (เช่น: ls | xclip) คลิปบอร์ดบนระบบโลคัลของฉัน (mac os x) ไม่เปลี่ยนแปลง ฉันพลาดอะไรไป
cwd

4
ฉันคิดว่าไฟล์ที่ถูกต้องที่จะเขียนถึงตอนนี้คือorg.macosforge.xquartz.X11
Keith Smiley

2

คุณยังสามารถคอมไพล์ vim-7.3 อีกครั้งและเพิ่มสิ่งต่อไปนี้ใน. vimrc ของคุณ:

set clipboard=unnamed

จากนั้นคุณจะสามารถ 'yy' ในกลุ่มและวางใน Cocoa ด้วย Cmd + V และในทางกลับกัน: คัดลอกด้วย Cmd + V ในโกโก้และวางในกลุ่มด้วย 'p'


ขอให้สังเกตว่าเสียงเรียกเข้าของคุณจะต้องมีการคอมไพล์ด้วยclipboardตัวเลือกในการทำงานนี้ vim --version | grep clipboardคุณสามารถดูว่ามันเป็นโดยการดำเนินการ ถ้ามันบอกว่า+clipboardคุณเป็นคนดี ถ้ามันบอกว่ามัน-clipboardจะไม่ทำงาน
egarcia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.