Erneutes Verknüpfen von STRG-ALT- [C | V] mit STRG-UMSCHALT- [C | V] in URxvt> = 9,20


16

Seit URxvt9.20 kann Text mit Ctrl+ Alt+ in die Zwischenablage kopiert C(und auch mit Ctrl+ Alt+ von dort eingefügt werden V).

Aber ich benutze diese Bindungen schon für eine andere Sache.

Also, wie kann ich es in URxvt> = 9.20 zu Ctrl+ Shift+ C(und Ctrl+ Shift+ Vzum Einfügen) zurückbinden ?


Antworten:


22

Die mit rxvt-unicode ausgelieferte eval-Erweiterung enthält hierfür paste_clipboard- und selection_to_clipboard-Aktionen, die an ein beliebiges keysym gebunden werden können (siehe hier ).

In Ihrem .Xresourceshinzufügen:

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

Um die vorherigen Tastenkombinationen zu deaktivieren, benötigen Sie außerdem:

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

Sie können die Datei neu laden mit:

xrdb -load .Xresources

Sie müssen rxvt neu starten, damit die Änderungen wirksam werden.


1
Dies funktionierte überhaupt nicht, bis ich dies auch hinzufügte oder bearbeitete, .Xresources: URxvt.perl-ext-common: default um #auch Tastenkappen wie folgt zu deaktivieren: unix.stackexchange.com/a/444777/8827
marinara

2

Der Code implementiert diese beiden Bindungen wie folgt:

  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;
    }

Sie können nicht die Verwendung keysymRessource , etwas anderes zu binden, da das nur in Strings Karten (keine Modifikatoren wie controlund alt).

Sie können jedoch die Perl-Erweiterung verwenden, die Methoden zum Arbeiten mit Auswahlen enthält. Sie müssen jedoch ein Perl-Skript schreiben, um diese zusammenzufügen.


1

Um die in @ Ennos Antwort genannten eval-Erweiterungen ( paste_clipboardund selection_to_clipboard) zu verwenden , können Sie Ihrer Datei Folgendes hinzufügen :.Xresources

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

Dies allein beantwortet die Frage nicht wirklich. Sie können es verbessern, indem Sie beschreiben, wie die .XresourcesDatei zum Binden der Schlüssel verwendet wird, da die Antwort von Enno dies nicht tut.
G-Man sagt, dass Monica am

1

Alle vorhandenen Antworten in der zweiten Hälfte der Frage behandeln (wie keybindings für Zwischenablage , um neue Schlüssel zu addieren), aber die erste Hälfte nicht beantworten (wie man oben freizugeben die ursprünglichen keybindings).

Die Antwort ist, sie einfach zu binden builtin-string:(wenn Sie möchten, dass sie wörtlich gesendet werden; ansonsten an die gewünschte Aktion). Dh in .Xresources:

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

Oder in der Befehlszeile:

-keysym.C-M-c builtin-string:
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.