ฉันจะคัดลอกและวางข้อความจากกลุ่มระยะไกลไปยังกลุ่มท้องถิ่นได้อย่างไร


11

ฉันกำลังแก้ไขไฟล์ใน vim บนเครื่องรีโมตผ่าน ssh และฉันต้องการคัดลอกข้อความออกจากไฟล์รีโมตและวางลงในอินสแตนซ์ vim ที่รันบนเครื่องโลคัลของฉัน มีวิธีง่ายๆในการทำเช่นนี้หรือไม่? ฉันสามารถใช้คุณสมบัติการเลือกเทอร์มินัลอีมูเลเตอร์ของฉันเพื่อเลือกข้อความที่อยู่บนหน้าจอในขณะนี้ แต่ถ้าการเลือกของฉันมีขนาดใหญ่กว่าสามารถใส่ลงบนหน้าจอได้ฉันก็โชคไม่ดี


ตรวจสอบว่าคำตอบนี้ช่วยได้หรือไม่
Skippy le Grand Gourou

คำตอบ:


23

เปิดไฟล์รีโมตในเซสชัน vim โลคัล:

  :e scp://user@host/relative/path/from/home.txt

ฉันชอบ. ดีและเรียบง่าย
Chev

สุดยอดเคล็ดลับ! สิ่งนี้scp://สามารถรับรู้ได้จากที่อื่นหรือเป็น VIM เท่านั้น?
Frozen Flame

1
@ FrozenFlame: ฉันเชื่อว่ามันเป็นแอพที่เฉพาะเจาะจง แต่ฉันจะไม่แปลกใจถ้า DE ขนาดใหญ่เช่น KDE หรือ Gnome ได้รับคำสั่งจากสคีมานี้ในทุก ๆ แอป
souser12345

1
สำหรับเส้นทางที่แน่นอน::e scp://user@host//tmp/file.txt
Simon A. Eugster

9

หากคุณมีสิทธิ์เพียงพอในเครื่องระยะไกลคุณสามารถเพิ่ม

AcceptEnv WINDOWID

เพื่อ / etc / ssh / sshd_config และรีสตาร์ท sshd ด้วย

sudo /etc/init.d/ssh restart

จากนั้นเพิ่มเครื่องของคุณ

ForwardX11 yes
SendEnv WINDOWID

ไปที่ไฟล์ ~ / .ssh / config ของคุณ

จากนั้นด้วยการเรียกใช้ Ximaware บนเครื่องระยะไกล (เช่นgvim -v) คุณสามารถคัดลอกและวางไปและกลับจากคลิปบอร์ด X เพียงแค่เลือกข้อความที่มองเห็น (เช่นการใช้V) และดึงมันลงใน*ทะเบียน

แก้ไข

ฉันลืมที่จะรวมส่วนเกี่ยวกับการตั้งค่าSendEnv WINDOWIDใน ~ / .ssh / config ของคุณดังนั้นฉันจึงเพิ่มและย้ายการเปิดใช้งานการส่งต่อ X จากบรรทัดคำสั่ง ( -Xตัวเลือกssh ) ไปยังไฟล์ ~ / .ssh / config ( ForwardX11 yes)


ฉันต้องการติดตั้งแพคเกจ xauth เพื่อให้สามารถทำงานกับ Debian ได้
leo

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