ฉันจะคัดลอกข้อความจากโปรแกรม“ หน้าจอ” ไปยังคลิปบอร์ดของฉันได้อย่างไร


13

ฉันต้องการคัดลอกข้อความจากหน้าจอไปยังคลิปบอร์ดของฉัน ฉันรู้วิธีเข้าสู่โหมดคัดลอกและวางในหน้าจอ แต่ฉันต้องการให้ข้อความนั้นไปที่คลิปบอร์ดของฉันเพื่อให้สามารถวางลงบนเบราว์เซอร์ได้

ฉันจะทำสิ่งนี้ได้อย่างไร ขอบคุณ!

คำตอบ:


8

ในโปรแกรมส่วนใหญ่คุณจะเลือกข้อความและกดCtrl+ Cเพื่อคัดลอก วางข้อความจะทำได้โดยการกด+Ctrl Vในโปรแกรมจำลองเทอร์มินัลCtrl+ Cมีความหมายพิเศษมันขัดจังหวะ (หยุด) โปรแกรมตามค่าเริ่มต้น

โปรแกรมจำลองเทอร์มินัลของคุณอาจมีทางลัดอื่นที่กำหนดไว้ ตัวอย่างเช่น Konsole และ Gnome Terminal ใช้Ctrl+ Shift+ Cสำหรับการคัดลอกข้อความที่เลือก หรือเลือกข้อความและคัดลอกโดยใช้ตัวเลือกคัดลอกในเมนูแก้ไขหรือเมนูบริบท

ถ้าผลลัพธ์ของโปรแกรมของคุณมีขนาดใหญ่คุณอาจต้องการเปิดใช้งานบัฟเฟอร์ scrollback screenของ สามารถทำได้โดยการเพิ่มบรรทัดด้านล่างลงใน~/.screenrcไฟล์:

termcapinfo xterm ti@:te@

2
สิ่งนี้จะไม่ทำงานหากข้อความที่คุณพยายามคัดลอกจากหน้าจอ GNU มีขนาดเกินหน้าจออสังหาริมทรัพย์จริง
Marco Ceppi

ฉันมักจะเลื่อนกลับไปแล้ว (หรือเพียงเลื่อนไปเรื่อย ๆ ในขณะที่เลือก)
Lekensteyn

คุณหมายถึงในขณะที่อยู่ในโหมดการคัดลอกในหน้าจอ?
Marco Ceppi

3
ไม่เมื่อเลือกข้อความในโหมดปกติโดยใช้เมาส์ เพื่อให้สามารถใช้งานได้คุณต้องใส่termcapinfo xterm ti@:te@ไฟล์ ~ / .screenrc ของคุณเพื่อให้สามารถเลื่อนดูได้ หากคุณไม่มี. screenrc ให้รับ screenrc ของฉันจากlekensteyn.nl/files/screenrc
Lekensteyn

อ่านั่นแหละขอบคุณสำหรับการชี้แจง คุณอาจต้องการเพิ่มคำตอบของคุณ
Marco Ceppi

10

สำหรับการนำไปใช้งานแบบดิบและสกปรกให้ติดตั้งแพคเกจxselที่อนุญาตให้มีการโต้ตอบบรรทัดคำสั่งกับ X คลิปบอร์ดแล้วใส่บรรทัดเหล่านี้ในของคุณ~/.screenrc

bind > eval writebuf "exec sh -c 'xsel -nbi </tmp/screen-exchange'"
bind y eval "exec sh -c 'xsel -bo >/tmp/screen-exchange'"

screenแล้วรีสตาร์ท

ตอนนี้เมื่อคุณเลือกบางสิ่งในscreenโหมดคัดลอก / เลื่อนและเขียนบัฟเฟอร์การวางลงในไฟล์ด้วยC- a >คุณสามารถย้ายไปที่เบราว์เซอร์และวางเนื้อหาของคลิปบอร์ดได้ตามปกติ (เช่นด้วยCtrl- V)

สำหรับย้อนกลับให้คัดลอกบางสิ่งบางอย่างในเบราว์เซอร์ของคุณด้วยCtrl- Cจากนั้นไปscreenและอ่านคลิปบอร์ดมีคำสั่งใหม่C- a yแล้วอ่านไฟล์หน้าจอแลกเปลี่ยนในบัฟเฟอร์วางด้วยC- a <ในที่สุดก็วางที่ใดก็ตามที่คุณต้องการด้วย-Ca ]

เพื่อให้สามารถใช้งานได้ตัวแปรDISPLAYจะต้องตั้งค่าอย่างถูกต้องและคุณต้องมีสิทธิ์เข้าถึงเซิร์ฟเวอร์ X นี่ไม่ใช่ปัญหาเมื่อคุณอยู่บนเทอร์มินัลที่รันบนเซิร์ฟเวอร์ X เดียวกัน แต่ถ้าคุณรันscreenในเทอร์มินัลเสมือนเช่น tty1 คุณอาจต้องทำงานxhost +บนฝั่ง X และexport DISPLAY=:0คล้ายกับเทอร์มินัลก่อนที่จะเริ่มscreen.

อย่างที่คุณเห็นมันไม่ง่ายและไม่ใช้กระสุน แต่ฉันหวังว่ามันจะช่วยได้

คำตอบนี้ได้รับแรงบันดาลใจมาจากการซิงโครไนซ์บัฟเฟอร์วางของหน้าจอ GNU และการเลือก X


xhost +เป็นคำแนะนำที่น่ากลัว ช่วยให้ทุกคนบนอินเทอร์เน็ตไฮแจ็ก X เซสชันของคุณถ่ายภาพการกดแป้นพิมพ์ถ่ายภาพหน้าจอ ฯลฯไม่ต้องทำ มีวิธีที่ถูกต้องในการทำสิ่งเดียวกัน; ตราบใดที่คุณอยู่ในพื้นที่เดียวกันและใช้โฮมิเดียเดียวกันการตั้งค่า$DISPLAYก็น่าจะใช้ได้
. GitHub หยุดช่วยน้ำแข็ง

0

เพียงใช้การคัดลอกในแอปพลิเคชันเทอร์มินัลของคุณ หากคุณใช้ gnome-terminal ตัวอย่างเพียงเลือก test และใช้เมนูบริบท -> copy


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