URxvt
9.20以降、テキストはクリップボードにコピーできます Ctrl+Alt+C (また、から貼り付け Ctrl+Alt+V)。
しかし、私はすでにこれらのバインディングを別の目的で使用しています。
だから、どのように再バインドできますか、URxvt
> = 9.20に Ctrl+Shift+C (そして Ctrl+Shift+V 貼り付け用)?
Rxvt-unicodeに同梱されているeval拡張には、このためのpaste_clipboardアクションとselection_to_clipboardアクションがあり、任意のキーシムにバインドできます( here を参照)。
あなたの.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を再起動する必要があります。
コードはこれらの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;
}
thatは文字列にのみマップされるため、keysym
リソースを使用して他のものを再バインドすることはできません(などの修飾子はありません) control そして alt)。
ただし、Perl拡張機能を使用することもできます。これには、選択を処理するためのメソッドがあります。しかし、それらを結び付けるためにPerlスクリプトを作成する必要があります。
既存の回答はすべて、質問の後半(クリップボード操作のキーバインドを新しいキーに追加する方法)を処理しますが、前半には回答しないでください(解放する元のキーバインド)。
答えは、それらを単にbuiltin-string:
にバインドすることです(逐語的に送信する場合は、そうでない場合は、目的のアクションに送信してください)。つまり、.Xresources
内:
URxvt.keysym.C-M-c: builtin-string:
または、コマンドラインで:
-keysym.C-M-c builtin-string:
評価拡張機能(paste_clipboard
およびselection_to_clipboard
)を使用するには @ Ennoの回答に記載 を.Xresources
ファイルに追加します。
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard