เป็นกลุ่มคัดลอกวางข้ามอาคาร


19

เสียงเรียกเข้าปกติyankและใช้pasteงานได้เฉพาะในหน้าต่างเดียวกัน (แต่ทำงานข้ามไฟล์และปิด / บันทึกคำสั่ง) เป็นไปได้หรือไม่ที่จะทำให้มันทำงานข้ามขั้ว (งัดจากหน้าต่างหนึ่งในเทอร์มินัลหนึ่งไปวางอีกอัน) และถ้าเป็นเช่นนั้นได้อย่างไร?

คำตอบ:


30

อาจเป็นสิ่งที่ง่ายที่สุดสำหรับคุณที่จะลองคือการใส่set clipboard=unnamedของคุณ.vimrcและเริ่มเซสชันเสียงเรียกเข้าของคุณ

สิ่งนี้ช่วยให้คุณเรียกใช้yank(เช่นyy) ในหน้าต่างหนึ่งและput(เช่นp) ในหน้าต่างอื่นจะใช้งานได้เนื่องจากเซสชัน vim ทั้งหมดจะแชร์บัฟเฟอร์การเลือก X เดียวกัน

ข้อเสีย yank buffer ของคุณจะถูกเขียนทับทันทีที่คุณเลือกข้อความในหน้าต่างอื่นของแอพพลิเคชั่น

กลับหัวกลับหางก็หมายความว่าสิ่งที่คุณดึงเป็นกลุ่มในขณะนี้สามารถวางลงในโปรแกรมใด ๆ โดยการคลิกกลาง

หากคุณไม่ชอบวิธีนั้นคุณสามารถพิมพ์"+หรือ"*ก่อนที่จะดึงและใส่คำสั่งเช่น"+yyเพื่อดึงสาย

+รูปแบบโต้ตอบกับคลิปบอร์ด ( "+yเป็นเหมือนCtrl+ C, "+pเป็นเหมือนCtrl+ V) รูปแบบโต้ตอบกับบัฟเฟอร์เลือก ( เป็นเหมือนคลิกซ้ายและลากเป็นเหมือนการคลิกกลาง)
*"*y"*p

ดูการทำ GUI เลือก , การสนับสนุนการเลือก X11และคลิปบอร์ดและเมาส์ตัวเลือกสำหรับรายละเอียด


3
พระเจ้าฉันรักการคลิกกลาง :)
Dan M.

set clipboard=unnamedไม่ทำงานสำหรับฉัน (ฉันใส่ไว้ใน. vimrc และเริ่มเซสชัน vim ทั้งหมดใหม่) น่าเสียดายที่ไม่ได้ทำวิธีอื่น ดูเหมือนว่ากลุ่มของฉันไม่ได้ถูกคอมไพล์ด้วย x-support ฉันใช้ VNC เพื่อเชื่อมต่อกับเครื่อง linux จากเครื่อง windows

3
ใช่วิธีนี้ต้องการการรองรับ X11 Run :echo has('x11')ถ้าสนับสนุน X 1มีการเปิดใช้งานจะพิมพ์
Mikel

0

หากคุณต้องการคัดลอกไฟล์ทั้งหมดลงในไฟล์เป้าหมายของคุณ

เปิดไฟล์เป้าหมายของคุณเป็นกลุ่ม

วางเคอร์เซอร์ของคุณในตำแหน่งที่คุณต้องการและพิมพ์ดังต่อไปนี้:

:r /path_to_file/file.ext

นี่จะเป็นการคัดลอกไฟล์ทั้งหมดไปยังตำแหน่งที่เคอร์เซอร์ของคุณ ...

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