9.20부터 ++를 사용 URxvt
하여 텍스트를 클립보드에 복사할 수 있습니다(++를 사용하여 붙여넣을 수도 있음).CtrlAltCCtrlAltV
그러나 나는 이미 이러한 바인딩을 다른 용도로 사용하고 있습니다.
URxvt
그렇다면 >=9.20에서 이것을 ++ Ctrl( 및 붙여넣기 의 경우 ++) 에 어떻게 다시 바인딩합니까 ?ShiftCCtrlShiftV
답변1
rxvt-unicode에 포함된 평가 확장에는 이 목적을 위한 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를 다시 시작해야 합니다.
답변2
기존의 모든 답변은 질문의 후반부(클립보드 작업을 위한 키 바인딩을 새 키에 추가하는 방법)를 다루지만 전반부(방법해방됨원래 키 바인딩).
대답은 간단히 바인딩하는 것입니다 builtin-string:
(문자 그대로 전송하려는 경우, 그렇지 않으면 원하는 작업에 바인딩). 즉, 다음과 같습니다 .Xresources
.
URxvt.keysym.C-M-c: builtin-string:
또는 명령줄에서 다음을 수행합니다.
-keysym.C-M-c builtin-string:
답변3
이 두 바인딩을 구현하는 코드는 다음과 같습니다.
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 스크립트를 작성해야 합니다.
답변4
eval을 사용하여 ( paste_clipboard
및 selection_to_clipboard
) 확장@Enno의 답변이 언급되었습니다.파일 에 다음을 추가할 수 있습니다 .Xresources
.
URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard