Answers:
rxvt-unicode附带的eval扩展为此具有paste_clipboard和selection_to_clipboard操作,可以将其绑定到任何keyym(请参见此处)。
在您的.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才能使更改生效。
该代码实现了这两个绑定,如下所示:
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脚本才能将它们捆绑在一起。
要使用@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
.Xresources
文件绑定密钥来改进它,因为Enno的答案没有。
现有的所有答案都处理问题的后半部分(如何将剪贴板操作的键绑定添加到新键),但不回答前一半(如何释放原始键绑定)。
答案是简单地将它们绑定到builtin-string:
(如果您希望将它们逐字发送;否则,绑定到所需的操作)。即,在.Xresources
:
URxvt.keysym.C-M-c: builtin-string:
或者,在命令行上:
-keysym.C-M-c builtin-string: