URxvt> = 9.20でCTRL-ALT- [C | V]をCTRL-SHIFT- [C | V]に再バインド


16

ためURxvtで9.20、テキストをクリップボードにコピーすることができるCtrl+ Alt+ C(とも有するから貼り付けCtrl+ Alt+ V)。

しかし、私はすでにこれらのバインディングを別の目的に使用しています。

では、URxvt9.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 。この答えは1として無効キーキャップを#also:unix.stackexchange.com/a/444777/8827
マリナ

2

コードは、次のようにこれら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から、何か他のものを再バインドするためのリソースをそれが唯一の文字列にマップ(のような何の修飾をcontrolしてalt)。

ただし、選択範囲を操作するためのメソッドを備えたPerl拡張機能を使用できます。しかし、それらを結び付けるためにPerlスクリプトを作成する必要があります。


1

@Ennoの回答に記載されているeval拡張機能(paste_clipboardおよびselection_to_clipboard)を使用するには、ファイルに以下を追加します。.Xresources

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

それだけでは、これは本当に質問に答えません。Ennoの答えはそうではないため、.Xresourcesファイルを使用してキーをバインドする方法を説明することで、これを改善できます。
G-Manが「Reinstate Monica」と言う

1

既存の回答はすべて質問の後半(クリップボード操作のキーバインドを新しいキーに追加する方法)を処理しますが、前半(元のキーバインドを解放する方法)には回答しません。

答えは、単純にそれらをバインドすることです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.