X 터미널에서 더블 클릭 동작을 구성하는 방법은 무엇입니까?


16

다른 유닉스 / 리눅스 시스템에서 X 터미널 응용 프로그램 (예 : xterm)에서 다른 더블 클릭 동작이 관찰되었습니다.

때때로 두 번 클릭하면 알파벳이 아닌 다음 문자가 나타날 때까지 왼쪽과 오른쪽의 모든 것을 선택합니다 (예 : 커서 아래의 단어를 선택).

때때로 다음 빈 / 올이 선택 될 때까지 모든 것이 선택됩니다 (예 : 커서 아래의 전체 경로가 선택됨).

xterm에서 더블 클릭 동작을 구성하려면 어떻게해야합니까 (대부분의 시스템에서 사용 가능하기 때문에)?

현재 대부분의 사용 사례에서 두 번째 모드가 더 편리하다는 것을 알았습니다.

답변:


19

X 리소스를 사용하여 수행합니다. .Xresources다음 xterm 관련 리소스가 포함 된 파일 이 있습니다.

XTerm*VT100.cutNewLine: false
XTerm*VT100.cutToBeginningOfLine: false
XTerm*VT100.charClass: 33:48,35:48,37:48,42:48,45-47:48,64:48,95:48,126:48

.xinitrc파일에는 해당 리소스를 병합하는 줄이 있습니다.

if [ -f $userresources ]; then
    /usr/X11/bin/xrdb -merge $userresources
fi

이 줄은 xterm 더블 클릭과 트리플 클릭으로 내가 좋아하는 것을합니다.

더블 클릭은 "단어"를 고려하여 슬래시 (/), 점 (.), 별표 (*) 및 기타 영숫자가 아닌 문자를 포함합니다. 이것이 "charClass"리소스입니다. 나는 내가 원하는 것을하기 위해 그 charClass와 약간의 지루한 조정을해야했습니다. 이를 통해 대부분 URL과 전체 또는 일부 정규화 된 경로를 두 번 클릭하여 강조 표시 할 수 있습니다.

다른 두 줄은 마우스 아래 단어에서 삼중 클릭을 시작하고 줄 끝으로 이동하지만 새 줄은 포함하지 않습니다. 이렇게하면 방금 실행 한 명령을 세 번 클릭하여 다른 창에 붙여 넣을 수 있으며, 새 줄이 없으므로 다른 창에서 실행하기 전에 편집 할 수 있습니다.

Arch Wiki에는 xterm 리소스에 대한 섹션을 포함하여 X resources에 대한 기사가 있지만 해당 xterm 리소스는 완전하지 않습니다.


1
위키는 유용 할 수 있지만 xterm 리소스에 대해 문의 할 수있는 곳은 매뉴얼 페이지 입니다.
토마스 디키

또는을 사용하십시오 XTerm*VT100.charClass: 0-32:0,33-65535:1. 두 번 클릭하면 "단어"는 공백 (및 제어 문자)을 제외한 일련의 기호로 간주됩니다.
Newtonx

예를 들어 json oneliner에서 따옴표 안에 들어있는 것을 얻으려면 공백 규칙이 좋지 않습니다. 그러나 나는 그것이 당신이 가진 사용법에 달려 있다고 생각합니다. 이 답변에 제공된 스 니펫은 나에게 완벽합니다.
장 베르나르 얀센

실수가 있습니다 : cutNewLine-> cutNewline. 아마도 그것은 새로운 버전에서 소개되었을 것입니다.
x-yuri

1
그리고 onNClicks: regex적어도 더 읽기 쉬운 것 같습니다.
x-yuri

5

xterm 선택을위한 두 번 및 세 번 클릭과 관련된 몇 가지 리소스 설정이 있습니다 (매뉴얼 페이지에는 모든 관련 리소스가 나열되어 있음).

cutNewline(class CutNewline)
"false"인 경우 줄을 선택하기 위해 세 번 클릭하면 끝에 줄 바꿈이 포함되지 않습니다 . "true"이면 줄 바꿈 이 선택됩니다. 기본값은 "true"입니다.

cutToBeginningOfLine(class CutToBeginningOfLine)
"false"인 경우 줄을 선택하기 위해 세 번 클릭하면 현재 단어 앞으로 만 선택됩니다. "true"이면 전체 줄이 선택됩니다. 기본값은 "true"입니다.

on2Clicks(클래스 On2Clicks)
on3Clicks(클래스 On3Clicks)
여러 마우스 클릭에 대한 응답으로 선택 동작을 지정합니다. 한 번의 마우스 클릭은 항상 선택 기능 섹션에 설명 된대로 해석됩니다 ( POINTER USAGE 참조 ). 여러 마우스 클릭 (선택 시작 동작을 활성화하는 버튼 사용)은 on2Clicks 등의 리소스 값에 따라 해석됩니다. 리소스 값은 다음 중 하나 일 수 있습니다.

word
charClass 자원에 의해 결정된 "단어"를 선택하십시오 . CHARACTER CLASSES 섹션을 참조하십시오 .

line
줄 바꿈을 선택하십시오.

group
인접한 줄 그룹을 선택합니다 (카운팅 계산). 선택은 빈 줄에서 멈추고 현재 페이지 밖으로 확장되지 않습니다.

page
보이는 모든 선, 즉 페이지를 선택하십시오.

all
저장된 라인을 포함하여 모든 라인을 선택하십시오.

regex
자원 값 다음에 오는 정규식에 따라 "단어"를 선택하십시오.

none
이 자원과 연관된 선택 조치가 없습니다. Xterm은이를 목록의 끝으로 해석합니다. 예를 들어, on3Clicks를 "none"으로 설정하여 트리플 (이상) 클릭을 비활성화 할 수 있습니다.

on2Clicks및 의 기본값 on3Clicks은 각각 "word""line" 입니다. on4Clicks 또는의 기본값은 없어서 on5Clicks비활성화합니다. 시작시 xtermonXClicks 은 설정된 자원 값으로 최대 클릭 수를 결정합니다 .


매뉴얼에서 알 수없는 내용 : 일부 배포판의 경우 기본값은 문서화 된 기본값이 아닙니다. 빈 charClass 자원을 설정하면 문서화 된 기본값이 복원됩니다. charClass에 지정한 것은 무엇이든 지정한 항목 만 덮어 씁니다. 지정되지 않은 항목은 문서화 된 기본값으로 복원됩니다. 적어도 그것이 저에게 효과가있는 것처럼 보입니다.
Jeff Learman

내가으로 실행 한 다음과 같은 값을 제안한다 xterm*on2Clicks: regex [^/@ \n]+, xterm*on3Clicks: regex [^ \n]+, xterm*on4Clicks: regex [^#$]+, xterm*on5Clicks: line. 허용 된 답변보다 더 쉽고 이해하기 쉽습니다.
x-yuri

두 번째 생각으로, 지금은 두 가지 접근법 중 가장 좋은 방법을 선택하기로 결정했습니다 (최소한 지금은 그것을 이해하는 방식으로). 단어 2 클릭, 단어 3 클릭 ( vim의미, 의미 xterm*on3Clicks: regex [^ \n]+), 복사 4 클릭 쉘 명령 (현재 단어에서 줄의 끝으로, xterm*on4Clicks: line, xterm*cutNewline: false, xterm*cutToBeginningOfLine: false), 전체 라인 5를 누른 상태에서 클릭 ( xterm*on5Clicks: regex [^\n]+).
x-yuri
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.