Firefox와 같은 응용 프로그램에서 Ctrl- Insert및 Shift-는 - 및 - Insert와 유사하게 작동합니다 (수정됨 )CtrlcCtrlv중학교클립보드), 그러나 XTerm에서는아니요처럼 일하다공통점 Ctrl—— 그리고 ——ShiftcCtrlShiftv:
- Ctrl- Insert클립보드를 변경하지 않고
;5~
현재 프롬프트에 그대로 인쇄합니다. - ShiftInsert-붙여넣기기초적인보조 클립보드 대신 클립보드.
내가 이 문제를 해결할 수 있을까.inputrc
또는 다른 것? 2행정을 하는 것이 더 좋습니다.크로스 플랫폼 잘라내기 및 붙여넣기 단축키어디에나.
답변1
xterm의 규칙은 Firefox나 웹이 발명되기 수년 전에 개발되었습니다.애플리케이션 리소스. 이러한 정보는 /usr/share/X11/app-defaults/XTerm
와 같은 파일과 X11 서버를 사용하여 저장된 정보를 포함하여 여러 위치에서 병합됩니다 xrdb -q
. 파일에 다음 콘텐츠를 배치하여 이러한 리소스를 재정의할 수 있습니다 ~/.Xdefaults
.
XTerm*VT100.Translations: #override\n\
Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\
Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n
ctrl-shift-v이는 클립보드 내용 삽입에 바인딩됩니다 . 정확히 무엇을 원하는지 잘 모르겠습니다. 확인해보세요.매뉴얼 페이지 기능과 PRIMARY, SECONDARY 및 CUT_BUFFER0 선택에 사용됩니다.
다음을 추가할 수도 있습니다(이전 줄의 백슬래시를 잊지 마세요).
Shift <Key>Insert: insert-selection(SECONDARY)\n\
Ctrl <Key>Insert: copy-selection(SECONDARY)\n
답변2
이는 다음과 유사합니다.xterm(Awesome, Debian, VirtualBox)에서 텍스트를 복사하는 방법은 무엇입니까?, 일부 추천 답변 포함.
그러나 백그라운드를 통해 xterm
X 이벤트가 수신되고( 를 사용하여 볼 수 있음 xev
) 이러한 이벤트는 다르게 처리됩니다.
- xterm 의 경우 controlinsert제어 키 및 삽입 키에 대한 이벤트를 살펴보고 애플리케이션에 보낼 문자 시퀀스를 구성합니다. 예를 들어 다음과 같습니다.
^[[28;5~
- shiftinsert다르게 처리되기 때문에기본
translations
자원xterm용. 이것은 X Toolkit 라이브러리의 기능입니다.앞으로xterm은 이벤트를 볼 수 있습니다. 내부에translations
리소스는 다음 줄입니다.
Shift 삽입: 선택 항목 삽입(SELECT, CUT_BUFFER0) \n\
이것SELECT
이 자원의 키워드는 xterm에 의해 자원에 따라 PRIMARY 또는 CLIPBOARD로 해석됩니다 selectToClipboard
(또는클립보드로 선택메뉴 아이템). 그런데 CLIPBOARD는 두 번째 선택이 아닙니다. 바라보다2.6.1.2. 두 번째 선택ICCM의 2차 선택에 대한 설명을 알아보세요.
활성화할 수 있습니다.selectToClipboard
리소스를 파일에 추가하세요 $HOME/.Xdefaults
(또는 다른 리소스 파일, 심지어 사용 xrdb
).
xterm*selectToClipboard: true
control
및 shift
수정자(순서 상관없이)와 키를 사용하여 번역을 추가할 수도 있습니다 insert
. 다른 질문에서 내 답변을 조정합니다.
xterm*VT100.Translations: #override \
Shift <Key>Insert: insert-selection(SELECT) \n\
Ctrl <Key>Insert: copy-selection(SELECT) \n\
Ctrl Shift <Key>V: insert-selection(SELECT) \n\
Ctrl Shift <Key>C: copy-selection(SELECT)
X 툴킷의 번역 파서는 키워드의 다양한 철자를 인식합니다. 따라서 Key
및와 동일합니다. 하지만 그것이 열쇠를 아는 유일한 방법입니다.KeyPress
KeyDown
Ctrl
control
때를할 수 있다controlC및 추가 controlV(기본적으로 이러한 제어 키는 터미널에서 유용하므로 일반적으로 권장되지 않음):
$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
추가 자료:
- 다른 프로그램에서 선택/붙여넣기가 불가능한 이유는 무엇입니까?(xterm FAQ)
- 10장 번역 관리(X 툴킷 인라인 - C 언어 인터페이스)
- 부록 B. 변환표 구문(X 툴킷 인라인 - C 언어 인터페이스)