fau*_*uve 19 keyboard-shortcuts clipboard rxvt
由于URxvt
9.20,文本可以被复制到剪贴板与Ctrl+ Alt+ C(并且还从与粘贴Ctrl+ Alt+ V)。
但是,我已经将这些绑定用于另一件事。
那么我怎样才能在URxvt
>=9.20中将它重新绑定到Ctrl+ Shift+ C(和Ctrl+ Shift+V用于粘贴)?
小智 29
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
Run Code Online (Sandbox Code Playgroud)
要禁用以前的键绑定,您还需要:
URxvt.keysym.Control-Meta-c: builtin-string:
URxvt.keysym.Control-Meta-v: builtin-string:
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令重新加载文件:
xrdb -load .Xresources
Run Code Online (Sandbox Code Playgroud)
您需要重新启动 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;
}
Run Code Online (Sandbox Code Playgroud)
您不能使用该keysym
资源重新绑定其他内容,因为它仅映射到字符串(没有诸如control和之类的修饰符alt)。
但是,您可以使用 Perl 扩展,它具有处理选择的方法。但您必须编写一个 Perl 脚本将它们连接在一起。