คัดลอกและวางด้วย URxvt


27

ฉันใช้ URxvt 9.20 บนเดเบียนเจสซีและฉันกำลังมองหาวิธีการคัดลอกและวางข้อความแบบที่ฉันคุ้นเคยกับ gnome-terminal ( Ctrl+ InsertสำหรับการคัดลอกShift+ Insertสำหรับการวาง)

มันทำงานในคอนโซล urxvt ที่แตกต่างกันมันไม่ทำงานระหว่างเช่น urxvt และ iceweasel

ฉันพยายามตามคู่มือในarchlinuxแต่มันใช้งานไม่ได้ (แม้ว่าจริง ๆ แล้วฉันไม่ต้องการใช้Shift+ Ctrl+ C/ Vมันก็คุ้มค่าที่จะลอง)

.Xresources:

! ******************
! urxvt config
! ******************

! Disable Perl extension
! If you do not use the Perl extension features, you can improve the security
! and speed by disabling Perl extensions completely. 
URxvt.perl-ext:
URxvt.perl-ext-common:

! Font spacing
! By default the distance between characters can feel too wide. It's controlled
! by this entry: 
! URxvt.letterSpace: -1

! -- Fonts -- !
URxvt.font:xft:Monospace:pixelsize=13
URxvt.boldfont:xft:Monospace-Bold:pixelsize=13
!URxvt*font:  -xos4-terminus-medium-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:pixelsize:12
!URxvt*boldFont:  -xos4-terminus-bold-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:bold:pixelsize:12
!URxvt*italicFont:  xft:Bitstream Vera Sans Mono:italic:autohint=true:pixelsize=12
!URxvt*boldItalicFont:  xft:Bitstream Vera Sans Mono:bold:italic:autohint=true:pixelsize=12

! Disable scrollbar
!URxvt*scrollBar: false

! Scrollbar style - rxvt (default), plain (most compact), next, or xterm
URxvt.scrollstyle: plain

! Background color
!URxvt*background: black
URxvt*background: #1B1B1B

! Font color
!URxvt*foreground: white
URxvt*foreground: #00FF00

! Other colors
URxvt*color0: black
!URxvt*color1: red3
URxvt*color1: #CD0000
URxvt*color2: green3
!URxvt*color3: yellow3
URxvt*color3: #C4A000
URxvt*color4: blue2
!URxvt*color4: #3465A4
URxvt*color5: magenta3
URxvt*color6: cyan3
URxvt*color7: gray90
URxvt*color8: grey50
URxvt*color9: red
URxvt*color10: green
URxvt*color11: yellow
!URxvt*color12: blue
URxvt*color12: #3465A4
URxvt*color13: magenta
URxvt*color14: cyan
URxvt*color15: white
! ******************
! /urxvt config
! ******************

คุณรู้หรือไม่ว่าคุณสามารถคัดลอกได้โดยเลือกข้อความด้วยเมาส์และวางโดยคลิกกลางใช่มั้ย ถ้าคุณทำไม่ได้นั่นเพียงพอหรือไม่
terdon

2
ปัญหาที่นี่คือทั้งสองโปรแกรมใช้การเลือก X-Windows แตกต่างกันโปรแกรมดั้งเดิมใช้การPRIMARYเลือกด้วย Shift + Insert และโปรแกรมใหม่ที่พยายามเลียนแบบการโยงคีย์จากระบบอื่นวางการCLIPBOARDเลือกสำหรับการโยงคีย์เดียวกัน ใน GTK + มันยากที่จะวางPRIMARYโดยไม่ต้องใช้เมาส์ (คลิกกลางเช่น @terdon พูดหรือคลิกซ้าย + คลิกขวาหากการจำลองปุ่มที่สามเปิดอยู่) แต่ในขณะนี้อธิบายว่าทำไมโปรแกรมไม่ผ่านข้อมูลระหว่างพวกเขาฉันสงสัยว่าทำไมข้อเสนอแนะ arch wiki ไม่ทำงาน
njsg

คุณลองใช้คำแนะนำจาก ArchWIki ได้อย่างไร หากคุณใช้หน้าจอเข้าสู่ระบบแบบกราฟิกเพื่อเริ่ม X คุณจะต้องโหลดทรัพยากร X อีกครั้งโดยใช้xrdb(ควรเป็นxrdb ~.Xresourcesหรือคล้ายกัน) urxvtทั้งสองวิธีที่คุณยังต้องเริ่มต้นใหม่ ในบางดิสทริบิวชันคุณอาจต้องติดตั้งแพคเกจแยกต่างหากพร้อมกับส่วนเสริม perl แต่ดูเหมือนว่าจะรวมอยู่ในrxvt-unicodeแพ็คเกจพื้นฐานในเดเบียน (แต่ฉันอาจเข้าใจผิด)
njsg

1
@terdon ขอบคุณสำหรับความคิดเห็นของคุณ การเลือกด้วยเมาส์และวางด้วยการคลิกกลางจะใช้งานได้แน่นอน อนิจจาไม่ใช่สิ่งที่ฉันต้องการบรรลุฉันต้องการใช้ Ctrl + Insert / Shift + Insert เหมือนที่ฉันคุ้นเคย (นิสัยและมนต์ทำให้เราทำงานได้อย่างมีประสิทธิภาพและรวดเร็วฉันไม่ได้ใช้เมาส์บ่อย ๆ (ฉันใช้ i3wm))
Thomas John

@njsg ขอบคุณมากสำหรับการอธิบายความแตกต่างหลัก / คลิปบอร์ด ฉันลองใช้ส่วนขยาย Perl ที่กล่าวถึงใน ArchWiki ที่ "Custom key bindings" มันไม่ได้สร้างความแตกต่าง (ฉันแสดงความคิดเห็นในส่วน "Disable Perl extension" ใน. Xresources ของฉันก่อนที่จะนำไปใช้แน่นอน) - ใช่ฉันทำ$ xrdb -merge ~/.Xresourceก่อน - ใช่ฉันเริ่ม urxvt ใหม่หรือเปิดหน้าต่างเทอร์มินัล urxvt ใหม่ซึ่งมีผลเหมือนกันฉันลืมพูดถึงจุดสำคัญที่สุด: ฉันไม่ได้ติดตั้งสภาพแวดล้อมเดสก์ท็อป: - ฉัน ' m ใช้ตัวจัดการ windows เท่านั้น (i3wm) - ฉันใช้ตัวจัดการล็อกอินแบบกราฟิก
Thomas John

คำตอบ:


16

แต่น่าเสียดายที่ระบบวินโดว์มีกลไกหลายคัดลอกวางที่แตกต่างกัน

Rxvt เช่นแอปพลิเคชัน X โรงเรียนเก่าส่วนใหญ่ใช้ตัวเลือกหลัก โดยทั่วไปเมื่อคุณเลือกบางสิ่งบางอย่างด้วยเมาส์มันจะถูกคัดลอกไปยังการเลือกหลักโดยอัตโนมัติและเมื่อคุณคลิกกลางเพื่อวาง

Ctrl+ CและCtrl+ V(หรือการผูกคีย์อื่น ๆ ) ในแอปพลิเคชันที่ใช้ชุดเครื่องมือ GUI ที่ทันสมัยเช่น Gnome-terminal และ Firefox คัดลอก / วางจากคลิปบอร์ด

มีเครื่องมือเพื่ออำนวยความสะดวกในการทำงานกับการเลือก โดยเฉพาะอย่างยิ่งหากคุณต้องการมีตัวเลือกเดียวที่คัดลอกไปยังไม่ว่าคุณจะเลือกด้วยเมาส์หรือกดCtrl+ Cคุณสามารถเรียกใช้autocutsel (เริ่มจาก.xinitrcหรือจากโปรแกรมเริ่มต้นของสภาพแวดล้อมเดสก์ท็อปของคุณ) ซึ่งตรวจพบเมื่อมีการคัดลอก ตัวเลือกใดตัวเลือกหนึ่งและคัดลอกไปยังอีกแบบหนึ่งโดยอัตโนมัติ


20

สำหรับการวางข้อความใน urxvt / rxvt-unicode คุณสามารถใช้middle buttonเพื่อวางการเลือกหลักและAlt/Meta+ middle buttonเพื่อวาง CLIPBOARD

สำหรับการคัดลอกเพียงทำเครื่องหมายข้อความในเทอร์มินัลเพื่อคัดลอกไปยังการเลือกหลัก งานบางอย่างจำเป็นสำหรับการคัดลอกไปยังการเลือก CLIPBOARD ฉันรวมข้อมูลจากหน้า ArchLinux คุณเชื่อมโยงกับสคริปต์ที่รวมอยู่ใน rxvt-Unicode-9.19 และจบลงด้วยสคริปต์เช่นนี้: https://gist.github.com/xkr47/98224ed6b0860cb55ec0 อนุญาตให้ใช้Ctrl+ InsertหรือCtrl+ Shift+ c`เพื่อคัดลอกข้อความที่เลือกในปัจจุบันไปยัง CLIPBOARD

หวังว่านี่จะช่วยได้

สำหรับเรกคอร์ดฉันยังไม่เรียกใช้สภาพแวดล้อมเดสก์ท็อป ใช้ Sawfish เป็นผู้จัดการหน้าต่าง

เคล็ดลับ : คุณสามารถตรวจสอบคลิปบอร์ดในเทอร์มินัลโดยใช้โปรแกรม "xclip":

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xclip -o -sel c ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -o -sel p ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

หรือใช้โปรแกรม "xsel":

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xsel -b -o ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -p -o ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

หัวข้อด้าน: ข้อมูลเกี่ยวกับวิธีการเลือกหลักและคลิปบอร์ดทำงานใน Emacs: emacswiki.org/emacs/CopyAndPaste
Jonas Berlin

ปุ่มกลาง / Alt + Meta ใช้งานได้กับฉันใน Debian
Jing

นี่คือคำตอบที่ถูกต้อง
Winny

15

มีกลไกในตัวสำหรับการคัดลอก / วางไปยัง / จากPRIMARY(ใช้เมื่อผู้ใช้เลือกข้อมูลบางอย่าง) และCLIPBOARD(ใช้เมื่อผู้ใช้เลือกข้อมูลบางส่วนและขอให้ "คัดลอก" ไปยังคลิปบอร์ดอย่างชัดเจนเช่นโดยการเรียกใช้ "คัดลอก" ใต้เมนู "แก้ไข" ของแอปพลิเคชัน) เพิ่มเติมเกี่ยวกับ clipboards ที่แตกต่างกันในการ X

สำหรับCLIPBOARDบัฟเฟอร์มันคือCTRL+META+C(ซึ่งใช้CTRL+ALT+Cสำหรับแป้นพิมพ์ PC มาตรฐาน) สำหรับการคัดลอกและCTRL+META+V( CTRL+ALT+V) สำหรับการวาง

ใบเสนอราคาจากurxvt man :

การคัดเลือก: การเลือกและการส่งข้อความ

พฤติกรรมของการเลือกข้อความและกลไกการใส่ / การวางจะคล้ายกับ xterm (1)

การเลือก :

คลิกซ้ายที่จุดเริ่มต้นของภูมิภาคลากไปยังจุดสิ้นสุดของภูมิภาคและปล่อย คลิกขวาเพื่อขยายขอบเขตที่ทำเครื่องหมายไว้ ดับเบิลคลิกซ้ายเพื่อเลือกคำ; คลิกซ้ายสามครั้งเพื่อเลือกทั้งบรรทัดโลจิคัล (ซึ่งสามารถขยายหลายบรรทัดหน้าจอ) ยกเว้นว่าได้รับการแก้ไขโดย tripleclickwords ทรัพยากร

การเริ่มต้นการเลือกในขณะที่กดปุ่ม Meta (หรือปุ่ม Meta + Ctrl) (คอมไพล์: frills) จะสร้างการเลือกเป็นรูปสี่เหลี่ยมผืนผ้าแทนที่จะเป็นแบบปกติ ในโหมดนี้ทุกแถวที่เลือกจะกลายเป็นสายของตนเองในการเลือกและช่องว่างต่อท้ายจะถูกขีดเส้นใต้และนำออกจากการเลือก

การวาง :

การกดและปล่อยปุ่มกลางของเมาส์ในหน้าต่าง urxvt จะทำให้ค่าของการเลือกหลัก (หรือ CLIPBOARD พร้อมด้วยตัวดัดแปลง Meta) ถูกแทรกราวกับว่ามันถูกพิมพ์บนแป้นพิมพ์

การกด Shift-Insert จะทำให้ค่าของการเลือกหลักถูกแทรกเช่นกัน

rxvt-unicode ยังให้การเชื่อมโยง Ctrl-Meta-c และเพื่อโต้ตอบกับการเลือก CLIPBOARD การผูกแรกทำให้ค่าของการเลือกภายในถูกคัดลอกไปยังการเลือก CLIPBOARD ในขณะที่การผูกที่สองทำให้ค่าของการเลือก CLIPBOARD ถูกแทรก


ทำไมฉันไม่คิดว่าวิธีแก้ปัญหาอยู่ใน man page? ตอนนี้ทุกอย่างชัดเจนสำหรับฉัน! ขอขอบคุณ!
Enrico Maria De Angelis

1
โดยวิธีการที่ฉันได้ลืมไปว่าหนึ่งในระหว่างการเลือกหลักและคลิปบอร์ดจะถูกวางเมื่อฉันเลือกบางสิ่งบางอย่างก่อนที่จะคลิกขวาและวาง ตอนนี้มันเป็นที่ชัดเจน: ก่อน → ประถม
Enrico Maria De Angelis

12

คุณสามารถทำสำเนา urxvt ไปที่ทั้งประถมศึกษาและคลิปบอร์ดด้วยการขยาย perlion selection-to-clipboard สิ่งนี้จะทำให้ข้อมูลตรงกันดังนั้นคุณเพียงแค่คัดลอกหนึ่งครั้งใน urxvt และควรทำงานในแอปพลิเคชันที่ใช้อย่างใดอย่างหนึ่ง

URxvt.perl-ext-common: selection-to-clipboard

2
ฉันสามารถเปลี่ยนชอร์คัตสำหรับส่วนขยายนี้ได้หรือไม่ ฉันไม่ชอบ ctrl-alt-c / v เริ่มต้น ฉันอยากได้ ctrl-shift-c / v
Trismegistos

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