Rebinding CTRL-ALT- [C | V] ถึง CTRL-SHIFT- [C | V] ใน URxvt> = 9.20


16

ตั้งแต่URxvt9.20 สามารถคัดลอกข้อความไปยังคลิปบอร์ดด้วยCtrl+ Alt+ C(และวางด้วยCtrl+ Alt+ V)

แต่ฉันใช้การผูกเหล่านี้เพื่อสิ่งอื่นแล้ว

ดังนั้นฉันจะปฏิเสธได้อย่างไรในURxvt> = 9.20 สู่Ctrl+ Shift+ C(และCtrl+ Shift+ Vสำหรับวาง)?


คำถามที่เกี่ยวข้องกับ SO stackoverflow.com/questions/43305190/…
anarcat

คำตอบ:


22

ส่วนขยายของ eval ที่จัดส่งมาพร้อมกับ rxvt-unicode มีการกระทำ paste_clipboard และ selection_to_clipboard สำหรับสิ่งนี้ซึ่งสามารถผูกกับ keysym ใด ๆ (ดูที่นี่ )

ในการ.Xresourcesเพิ่มของคุณ:

URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard

หากต้องการปิดใช้งานการโยงคีย์ก่อนหน้าคุณจะต้อง:

URxvt.keysym.Control-Meta-c: builtin-string:
URxvt.keysym.Control-Meta-v: builtin-string:

คุณสามารถโหลดไฟล์ใหม่ด้วย:

xrdb -load .Xresources

คุณจะต้องรีสตาร์ท rxvt เพื่อให้การเปลี่ยนแปลงมีผล


1
สิ่งนี้ใช้งานไม่ได้เลยจนกว่าฉันจะเพิ่มหรือแก้ไขสิ่งนี้ใน.Xresources: URxvt.perl-ext-common: default #also ปิดใช้งานแป้นคีย์ตามคำตอบนี้: unix.stackexchange.com/a/444777/8827
marinara

2

รหัสใช้การผูกสองแบบนี้:

  if (ctrl && meta && (keysym == XK_c || keysym == XK_v))
    { 
      if (keysym == XK_v)
        selection_request (ev.time, Sel_Clipboard);
      else if (selection.len > 0)
        { 
          free (selection.clip_text);
          selection.clip_text = rxvt_wcsdup (selection.text, selection.len);
          selection.clip_len = selection.len;
          selection_grab (CurrentTime, true);
        }

      return;
    }

คุณไม่สามารถใช้keysymทรัพยากรให้กับ rebind อย่างอื่นเนื่องจากว่าเพียงแผนที่สตริง (ไม่มีการปรับเปลี่ยนเช่นcontrolและalt)

อย่างไรก็ตามคุณสามารถใช้ส่วนขยาย Perl ซึ่งมีวิธีการทำงานกับตัวเลือก แต่คุณต้องเขียนสคริปต์ Perl เพื่อเชื่อมโยงสิ่งเหล่านั้นเข้าด้วยกัน


1

หากต้องการใช้ส่วนขยาย eval ( paste_clipboardและselection_to_clipboard) ที่กล่าวถึงในคำตอบของ @ Ennoคุณสามารถเพิ่มสิ่งต่อไปนี้ใน.Xresourcesไฟล์ของคุณ:

URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard

โดยตัวมันเองมันไม่ได้ตอบคำถามจริงๆ คุณสามารถปรับปรุงได้โดยอธิบายวิธีใช้.Xresourcesไฟล์เพื่อผูกคีย์เนื่องจากคำตอบของ Ennoไม่ได้
G-Man กล่าวว่า 'Reinstate Monica'

1

ทุกคำตอบที่มีอยู่จัดการกับช่วงครึ่งหลังของคำถาม (วิธีการเพิ่ม keybindings สำหรับการดำเนินงานคลิปบอร์ดคีย์ใหม่) แต่ไม่ได้คำตอบในช่วงครึ่งแรก (วิธีการเพิ่ม keybindings เดิม)

คำตอบก็คือผูกมันไว้กับbuiltin-string:(ถ้าคุณต้องการให้พวกเขาส่งคำต่อคำ; มิฉะนั้นเพื่อการกระทำที่ต้องการ) เช่นใน.Xresources:

URxvt.keysym.C-M-c: builtin-string:

หรือบนบรรทัดคำสั่ง:

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