Robisz to za pomocą zasobów X. Mam plik, .Xresources
który zawiera te zasoby związane z 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
W moim .xinitrc
pliku mam linię łączącą się w tych zasobach:
if [ -f $userresources ]; then
/usr/X11/bin/xrdb -merge $userresources
fi
Te linie powodują, że xterm podwójnie kliknie i potrójne kliknięcie zrobi to, co lubię:
Dwukrotne kliknięcie uważa „słowo”, które obejmuje ukośnik (/), kropkę (.), Gwiazdkę (*) i niektóre inne znaki niealfanumeryczne. To zasób „charClass”. Musiałem zrobić trochę żmudnego majstrowania przy tym charClass, aby zrobić to, co chcę. Pozwala to głównie na dwukrotne kliknięcie adresów URL i ścieżek w pełni lub częściowo zakwalifikowanych, aby je podświetlić.
Pozostałe dwie linie powodują, że potrójne kliknięcie rozpoczyna się od słowa pod myszą i przechodzi do końca linii, ale nie zawiera żadnej nowej linii. W ten sposób możesz trzykrotnie kliknąć właśnie wykonane polecenie, wkleić je w innym oknie, a ponieważ nie ma on nowej linii, możesz je edytować przed uruchomieniem w innym oknie.
Arch Wiki zawiera artykuł o zasobach X , w tym sekcję o zasobach xterm, ale te zasoby xterm nie są kompletne.
XTerm*VT100.charClass: 0-32:0,33-65535:1
. Dwukrotne kliknięcie będzie wtedy traktować „słowo” jako dowolną sekwencję symboli oprócz białych znaków (i znaków kontrolnych).cutNewLine
->cutNewline
. Może zostało to wprowadzone w nowszych wersjach.onNClicks: regex
wydaje się co najmniej bardziej czytelny.xterm
ma kilka ustawień zasobów związanych z podwójnym i potrójnym klikaniem do wyboru (strona podręcznika zawiera listę wszystkich odpowiednich zasobów):źródło
xterm*on2Clicks: regex [^/@ \n]+
,xterm*on3Clicks: regex [^ \n]+
,xterm*on4Clicks: regex [^#$]+
,xterm*on5Clicks: line
. Wydaje się lepszy i łatwiejszy do zrozumienia niż te w zaakceptowanej odpowiedzi.vim
sensiexterm*on3Clicks: regex [^ \n]+
), 4 kliknięcia na skopiowanie polecenia z muszli (od bieżącego słowa do końca linii,xterm*on4Clicks: line
,xterm*cutNewline: false
,xterm*cutToBeginningOfLine: false
), 5 kliknięcie na całych liniach (xterm*on5Clicks: regex [^\n]+
).