URRLvt में CTRL-ALT- [C | V] को CTRL-SHIFT- [C | V] रीबाइंड करना


16

के बाद से URxvt9.20, पाठ क्लिपबोर्ड में कॉपी किया जा सकता है के साथ Ctrl+ Alt+ C(और यह भी साथ से चिपकाया Ctrl+ Alt+ V)।

लेकिन, मैं पहले से ही इन बाइंडिंग का उपयोग दूसरी चीज़ के लिए करता हूं।

तो मैं कैसे rebind कर सकते हैं, में URxvt> = 9.20 इसे करने के लिए Ctrl+ Shift+ C(और Ctrl+ Shift+ Vपेस्ट के लिए)?


जवाबों:


22

Rxvt-unicode के साथ भेजे गए eval एक्सटेंशन में इसके लिए paste_clipboard और Selection_to_clipboard कार्य हैं, जो कि किसी भी कीसम के लिए बाध्य हो सकते हैं ( यहाँ देखें )।

आपके .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)।

हालाँकि, आप पर्ल एक्सटेंशन का उपयोग कर सकते हैं, जिसमें चयन के साथ काम करने के तरीके हैं। लेकिन आपको उन लोगों को एक साथ जोड़ने के लिए एक पर्ल स्क्रिप्ट लिखनी होगी।


1

@ एन्नो के उत्तर में उल्लिखित eval एक्सटेंशन ( paste_clipboardऔर selection_to_clipboard) का उपयोग करने के लिए आप अपनी फाइल में निम्नलिखित जोड़ सकते हैं :.Xresources

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

अपने आप से, यह वास्तव में सवाल का जवाब नहीं देता है। आप .Xresourcesकुंजी को बाँधने के लिए फ़ाइल का उपयोग करने के तरीके का वर्णन करके इसे सुधार सकते हैं , क्योंकि एननो का जवाब नहीं है।
जी-मैन का कहना है कि 'मोनिका' की बहाली

1

सभी मौजूदा उत्तर प्रश्न के उत्तरार्ध को संभालते हैं (क्लिपबोर्ड ऑपरेशन के लिए कीबाइंडिंग को नई कुंजियों में कैसे जोड़ा जाए), लेकिन पहली छमाही ( मूल कीबाइंडिंग को कैसे मुक्त करें ) का उत्तर न दें।

इसका उत्तर बस उन्हें बाँधना है builtin-string:(यदि आप चाहें तो उन्हें वाचालता भेजा जाना चाहिए; अन्यथा वांछित कार्रवाई के लिए)। यानी, में .Xresources:

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

या, कमांड लाइन पर:

-keysym.C-M-c builtin-string:
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.